Servlet
是一个Java程序,是在服务器端运行以处理客户端请求并做出响应的程序。
在自己new的类中要做三件事:
1、 接收用户请求,处理用户提交过来的数据
2、 JavaBean来处理逻辑
3、 再用合适的方法显示视图。
doGet() :方法用来响应用户提交的GET数据。
doPost():方法用来响应用户提交的POST数据。
doGet()方法和doPost()方法不要混(不要互相调用)。在解决乱码方法。
所有的JSP页面最后都要生成java类。
Servlet的生命周期
当客户端发送一个请求,Servlet容器会查找内存中是否存在Servlet实例,如果不存在,就创建一个Servlet实例。如果存在Servlet实例,就直接从内存中取出该实例来响应请求。
实例化
Servlet容器创建Servlet的实例。
初始化
init() :是提供给编程人员使用的。例如:建立JDBC连接、建立其他资源的引用。
服务
srvice():判断用户使用什么方式提交的,GET则转向doGet(),POST则转向doPost()
销毁
destroy() :实现Destroy()方法指明哪些资源可以被系统回收,而不是由destroy()方法进行回收。
web.xml文件 是对用户的请求数据进行处理。
Web.xml是Web项目中的调度员,容器根据在URL中访问的Servlet在web.xml文件中进行查找(查找方式:<Servlet-mapping>中<url-pattern>—><servlet-name>—><servlet>中<servlet-name>—><servlet-class>),并调用该Servlet以处理用户的请求。
例:
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name> //设定当前Servlet的内部名称
<servlet-class>y2javaee.sg.ch02.HelloServlet</servlet-class>指定对应Servlet内部名相关类
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name> 通过Servlet内部名把URL与class绑定
<url-pattern>HelloServlet</url-pattern> //用户访问Servlet的URL
</servlet-mapping>
</web-app>
HttpServletRequest request对象的常用方法
request.getParameter(“param”); //获取用户提交的表单信息
request.setCharacterEncoding(“GBK”); //将得到的信息转化为(“gbk”)编码
request.setAttribute(“loginname”,user); //在request作用域内存储数据。
request.getAttribute(“loginname”); //获取作用域中的key为loginname的数据
request.getRequestDispatcher(url); //转发将当前的request和response转发到新的页面
HttpServletResponse response 对象的常用方法
response.setContentType(“text/html;charset=GBK”); //将相应用户的信息格式设为text格式中的html,编码为gbk
response.sendRedirect(“url”); //将浏览器重定到指定的资源.
转发
RequestDispatcher dispatcher=request.getRequestDispatcher(url);
dispatcher.forward(request,response);
request.getRequestDispatcher(url);
// 为转发格式,是服务器的动作,客户端的页面没有反映。这个不用写上下文路径
Servlet—>JSP
request.getRequestDispatcher(“/ok.jsp”);
response.sendRedirect(“url”);
//将客户端的页面重定向到新的页面。这个要写上下文路径。
Servlet—>JSP
response.sendRedirect(“/ restrant/error.jsp”);