SERVLET:是用Java编写的服务器端程序,其主要功能在于交互式地浏览和 修改数据,生成动态Web内容
1. 如何创建一个servlet
public class LoginServlet extends HttpServlet{
service()
dopost()
doget()
}
public class LoginServlet implements Servlet{
init();
service()
destroy()
}
2. 如何访问servlet(前端页面执行相应的servlet)
-
xml文件中配置servlet
< servlet> < servlet-name>服务器的名称</ servlet-name> < servlet-class>服务类所在的路径</> < /servlet> < servlet-mapping> < servlet-name>服务器的名称</> < url-pattern>/loginservlet< /url-pattern> </>
-
使用注解的方式 /当前项目所在的路径 根路径(简单)
@WebServlet(urlPatterns="/login")
3.两个对象:
service()方法中会自动传入两个对象,不用自己创建
使用继承HttpServlet创建时:
1.页面到服务器:HttpServletRequest
常用方法:
获取页面的请求参数:
String getParameter(String name):根据请求的参数名字,返回的值
getParameterValues(String name):根据请求的参数名字,返回对应的字符串数组 (多选框等传参)
getParameterNames():返回请求成参数名对应的值
获取请求页面的路径:
getRquestURI()
getRquestURL()
获取页面请求的方式 get/post
getMethod()
设置页面请求的字符集(post请求时管用)
setCharacterEncoding(“utf-8”)
转发跳转页面:
getRequestDispatcher(“路径”).forward(请求对象,响应对象)
设置属性值
setAttribute(属性名,属性值)
获取属性值:
getAttribute(属性名)
获取session对象:
request.getSession()
2.服务器到页面:响应 HttpServletResponse
常用的方法:
响应的信息写入页面内
获取输出流 getWriter();
设置响应的字符集
setCharacterEncoding(“utf-8”);
重定向跳转页面:
sendRedirect(“路径”):重定向的路径
给这个响应添加一个cookie
void addCookie(Cookie var1);
4.前端请求的方式
方式1:通过表单 get/post提交
方式2:通过a标签发送数据(get提交)
示例: <a href="/login?a=10&name=abc&pass=123">
这里的key值=表单元素的控件名,value值=表单中控件的value属性值 注:第一个参数使用?拼接,之后的参数使用&拼接,获取数据还是通过 String name=request.getParameter(“name”);
方式3:通过地址栏直接拼接-(get)请求
方式4:js提交数据
(1) location.href=“目标请求?key=value&key=value”
(2) ajax提交(常用)
注:方式2/3都属于get提交方式,表单、ajax提交可以使用get、post提交方式
5.servlet响应跳转页面的方式
1.转发转发:
request.getRequestDispatcher("…/success.jsp").forward(request,response);
转发时地址栏显示的是请求页面的地址,request数据可以保 存
2.重定向
response.sendRedirect()
重定向时地址栏会改变,request中存储的数据会丢失
3.response的输出流发送js代码跳转
out.print("< script type=‘text/javascript’>alert(‘登录失败’);location=’…/login.jsp’< /script>");
使用js跳转页面,也会丢失request中的数据