JSP实用教程第六章 | 您所在的位置:网站首页 › jsp编写1到100的和 › JSP实用教程第六章 |
目录 6.1 servlet的部署、创建与运行: 6.1.1 源文件及字节码文件: 6.1.2 编写部署文件web.xml: 6.1.3 servlet的创建与运行: 6.1.4 向servlet传递参数的值: 6.2 servlet的工作原理: 6.2.1 servlet对象的生命周期: 6.2.2 init方法: 6.2.3 service方法: 6.2.4 destroy方法: 6.3 通过JSP页面访问servlet: 6.4 共享变量: 6.5 doGet和doPost方法: 6.6 重定向与转发: 6.7 使用session: 6.1 servlet的部署、创建与运行: 6.1.1 源文件及字节码文件:servlet是一种特殊的Java类,它需要遵循一些规范和接口,才能被Web容器识别和运行。servlet源文件需要编译为字节码文件,并保存在Web应用的WEB-INF/classes目录下或者打包为JAR文件并保存在WEB-INF/lib目录下。 6.1.2 编写部署文件web.xml:servlet需要在Web应用的部署文件web.xml中进行配置,才能被Web容器识别和运行。例如,下面是一个简单的servlet配置: HelloServlet com.example.HelloServlet HelloServlet /hello 6.1.3 servlet的创建与运行:当Web容器接收到一个匹配servlet配置的请求时,它会根据配置信息创建一个对应的servlet实例,并调用其生命周期方法来处理请求。 6.1.4 向servlet传递参数的值:可以在请求URL中添加查询参数,或者在请求体中提交表单数据,来向servlet传递参数的值。例如: http://localhost:8080/hello?name=Bing 6.2 servlet的工作原理: 6.2.1 servlet对象的生命周期:servlet对象有一个完整的生命周期,包括初始化、服务和销毁三个阶段。Web容器会根据请求情况自动管理servlet对象的生命周期。 6.2.2 init方法:当Web容器第一次创建一个servlet实例时,会调用其init()方法来进行初始化。该方法只会被调用一次。 6.2.3 service方法:当Web容器接收到一个匹配servlet配置的请求时,会调用其service()方法来处理请求。该方法可以被多次调用。 6.2.4 destroy方法:当Web容器决定销毁一个servlet实例时,会调用其destroy()方法来进行清理。该方法只会被调用一次。 6.3 通过JSP页面访问servlet:可以在JSP页面中使用表单或超链接等方式来向servlet发送请求。例如: 6.4 共享变量: 可以使用request、session或application对象来在不同组件之间共享变量。例如: request.setAttribute("name", "Bing"); String name = (String) request.getAttribute("name"); 6.5 doGet和doPost方法:下面是一个简单的servlet例子,它重写了doGet()和doPost()方法来分别处理GET和POST请求。 public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().println("Hello, GET!"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().println("Hello, POST!"); } } 6.6 重定向与转发:下面是一个简单的servlet例子,它演示了如何使用sendRedirect()方法来实现重定向,以及如何使用getRequestDispatcher().forward()方法来实现转发。 public class RedirectServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 重定向到另一个servlet response.sendRedirect("/another"); // 转发到另一个servlet request.getRequestDispatcher("/another").forward(request, response); } } 6.7 使用session:下面是一个简单的servlet例子,它演示了如何使用getSession()方法来获取session对象,并使用其相关方法来存储和访问会话数据。 public class SessionServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); Integer count = (Integer) session.getAttribute("count"); if (count == null) { count = 1; } else { count++; } session.setAttribute("count", count); response.getWriter().println("Count: " + count); } } |
CopyRight 2018-2019 实验室设备网 版权所有 |