效果:
在网页的输入框中输入lily,跳到成功的页面(请求转发),输入的不是lily则跳到百度的页面(跳到工程之外的页面,则是请求重定向)
1.建Web project“2Servlet_Basic”,在src文件夹下建MyHtml.html
<!DOCTYPE html> <html> <head> <title>MyHtml.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <form action="/2Servlet_Basic/servlet/basic" method="post"> <input type="submit" value ="click"> usename: <input type="text" name="usename" > </form> </body> </html>
<!--success.html--> <!DOCTYPE html> <html> <head> <title>success.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> success! <br> </body> </html>
<!--failure.html--> <!DOCTYPE html> <html> <head> <title>failure.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> failure! <br> </body> </html>
2.在web.xml中加入usename的局部变量(是这个servlet实例能够调用它)
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>basicservlet</servlet-name> <servlet-class>com.amaker.servlet.ServletBasic</servlet-class> <init-param> <param-name>usename</param-name> <param-value>lily</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>basicservlet</servlet-name> <url-pattern>/servlet/basic</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <login-config> <auth-method>BASIC</auth-method> </login-config> </web-app>
3..在工程下建包com.amaker.servlet,在包下建类“ServletBasic.java”
//ServletBasic.java package com.amaker.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //继承HttpServet,doGet alt+/,sysout alt+/ public class ServletBasic extends HttpServlet { /** * */ private static final long serialVersionUID = 3616093822222878695L; public void init() throws ServletException { System.out.println("init"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doPost"); } protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String usename=request.getParameter("usename"); if(usename!=null&usename.equals("lily")){ request.getRequestDispatcher("/success.html").forward(request, response); //跳到工程里的页面,叫做请求转发 }else{ // request.getRequestDispatcher("/failure.html").forward(request, response); response.sendRedirect("http://www.google.cn"); //跳到工程之外的页面,请求重定向 } //如果表单上填写的usename 为Lily,则跳转到成功的页面,否则跳转到失败的页面 //提交表单后第一个将调用service方法 } public void destroy() { System.out.println("destroy"); } }