J2EE:servlet 跳转、自启动

来源:互联网 发布:哈萨克音乐bayge软件 编辑:程序博客网 时间:2024/06/06 18:02

跳转

跳转的方式有两种,服务端跳转和客户端跳转
这里写图片描述

服务端跳转

request.getRequestDispatcher("success.html").forward(request, response);

客户端跳转

客户端跳转也是分为两种方式的:永久性和临时跳转
永久性跳转。

response.sendRedirect("fail.html");
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    protected void service(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        String name = request.getParameter("name");        String password = request.getParameter("password");        if ("admin".equals(name) && "123".equals(password)) {            request.getRequestDispatcher("success.html").forward(request, response);        }        else{            response.sendRedirect("fail.html");        }    }}

自启动

在web.xml中,配置Hello Servlet的地方,增加一句

<load-on-startup>10</load-on-startup>

为HelloServlet提供一个init(ServletConfig) 方法,验证自启动
10表示启动顺序,取值范围是1-99
如果有多个Servlet都配置了自动启动,小的数字先启动

<?xml version="1.0" encoding="UTF-8"?><web-app>    <servlet>        <servlet-name>HelloServlet</servlet-name>        <servlet-class>HelloServlet</servlet-class>        <load-on-startup>10</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>HelloServlet</servlet-name>        <url-pattern>/hello</url-pattern>    </servlet-mapping></web-app>

servlet

public class HelloServlet extends HttpServlet{    public void init(ServletConfig config){        System.out.println("init of Hello Servlet");    }    public void doGet(HttpServletRequest request, HttpServletResponse response){        try {            response.getWriter().println("<h1>Hello Servlet!</h1>");            response.getWriter().println(new Date().toLocaleString());        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }     }
0 0