Servlet生命周期中的service方法探究

来源:互联网 发布:java 命令行打包 编辑:程序博客网 时间:2024/06/16 05:47

1、该servlet代码如下

package com.yqq.loginservice;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.yqq.loginservice.DButis.TestDbUtils;public class LoginServlet extends HttpServlet {private TestDbUtils mTestDbUtils;private String u;private String p;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("doGet");}/** * 查询数据库检查是否有该参数存在 * @param userName用户名 * @param password密码 * @return */private boolean checkLogin(String userName,String password){List<Map<String,String>> results=new ArrayList<Map<String,String>>();if(u.equals(userName)&&p.equals(password)){return true;}//获得数据库操作实例mTestDbUtils=TestDbUtils.getSington();results=mTestDbUtils.getCheckUserInfo();System.out.println(results.toString());for(Map<String,String> map:results){if(map.get("userName").equals(userName)&&map.get("passWord").equals(password)){return true;}}return false;}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("doPost");doGet(req,resp);}@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {super.service(req, resp);System.out.println("service");//设置编码req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");resp.setCharacterEncoding("utf-8");PrintWriter out=resp.getWriter();//获得客户端提交的参数String uesrName=req.getParameter("userName");String password=req.getParameter("passWord");System.out.print("提交的参数:"+uesrName+password);if(checkLogin(uesrName, password)){out.write("welldone");System.out.print("返回的数据:"+"welldone"+"登录成功");}else{out.write("登录失败该用户不存在!请先注册!");System.out.print("返回的数据:"+"登录失败该用户不存在!请先注册!");}out.flush();}@Overridepublic void destroy() {super.destroy();}@Overridepublic void init(ServletConfig config) throws ServletException {// TODO Auto-generated method stubsuper.init(config);System.out.println("init");u=config.getInitParameter("name");p=config.getInitParameter("password");}}
web.xml


<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" 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_3_0.xsd">  <display-name></display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>       <servlet>            <servlet-name>LoginServlet</servlet-name>    <servlet-class>com.yqq.loginservice.LoginServlet</servlet-class>             <init-param>         <param-name>name</param-name>         <param-value>test</param-value>     </init-param>        <init-param>         <param-name>password</param-name>         <param-value>888888</param-value>     </init-param>            </servlet>  <servlet-mapping>    <servlet-name>LoginServlet</servlet-name>    <url-pattern>/LoginServlet</url-pattern>  </servlet-mapping></web-app>


部署成功后第一次访问结果如下:


然后的访问就是如下所示了:


所以service方法每次都执行。但不写do方法,程序运行不了。

0 0
原创粉丝点击