JavaWeb-Servlet编程 Part2

来源:互联网 发布:长春淘宝图片拍摄 编辑:程序博客网 时间:2024/06/05 22:45

Service()方法

简介
容器调用service()方法来处理客户端的请求。要注意的是,在service()方法被容器调用之前,必须确保init()方法已经正确执行。

service()方法语法格式定义如下:
public void Service(ServletRequest req, ServletResponse res) throws ServletException, IOException

在service()方法中,servlet通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息。

通过新建菜单新建的Servlet中并没有定义service()方法。而是定义了一个doGet()方法。这是由于客户端通过HTTP协议请求Servlet时有Get和Post两种方式,所以可以用语法格式与service()方法完全相同的doGet()或doPost()来替换service()方法,其中doGet()方法只在GET请求时被执行,doPost()方法也一样,只在Post请求时被执行.但是需要注意,service()不能和doPost()、doGet()同时使用,因为其本身就包含对doPost()和doGet()方法的处理。

步骤

1.配置web.xml配置文件

<servlet>    <!-- 设置Servlet的名称 -->    <servlet-name>LoginServlet</servlet-name>    <!-- 设置Servlet的完整类名 -->    <servlet-class>com.demo.service.LoginServlet</servlet-class>    <!-- Servlet中初始化参数 -->    <init-param>        <!-- 初始化参数名 -->        <param-name>service</param-name>        <!-- 初始化参数值 -->        <param-value>10000</param-value>    </init-param>  </servlet>  <!-- 设置Servlet映射信息 -->  <servlet-mapping>  <!-- 设置Servlet的名称 -->    <servlet-name>LoginServlet</servlet-name>  <!-- 设置Servlet的映射URL路径 -->    <url-pattern>/servlet/LoginServlet</url-pattern>  </servlet-mapping>

2.首先在项目中创建用户注册信息页面regiester.jsp,其具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ page import="java.util.*" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>注册页面</title></head><body>    <form action="servlet/LoginServlet" method="post">        <table>            <tr><td>用户名:</td><td><input type="text" name="name"></td></tr>            <tr><td>密码:</td><td><input type="text" name="pass"></td></tr>            <tr><td colspan="1"><input type="submit" value="提交"></td></tr>        </table>    </form></body></html>

3.然后在项目中创建LoginServlet,其具体代码如下:

package com.demo.service;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;import javax.sql.*;/** * Servlet implementation class LoginServlet */@WebServlet("/LoginServlet")public class LoginServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    public LoginServlet() {        super();    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        response.getWriter().append("Served at: ").append(request.getContextPath());    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //设置返回页面的MIME类型        response.setContentType("text/html; charset=UTF-8");        //获取输出流对象        PrintWriter out = response.getWriter();        //输出显示的页面内容        out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");        out.println("<html>");        out.println("<head><title>A Servlet</title></head>");        out.println("<body>");        try        {            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");            Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=UserInfo",                    "sa", "Aa123789");            Statement state = conn.createStatement();            int result = state.executeUpdate("Insert into userInfo(userName, userPasswd) values ('"                    + request.getParameter("name") + "', '"                    + request.getParameter("pass") + "')");            //判断是否插入成功            if(result == 1)            {                out.println("注册成功");            }            else            {                out.println("注册失败");            }        }        catch(Exception se)        {            out.println(se);        }        out.println("</body></html>");        out.flush();        out.close();        doGet(request, response);    }}

destroy()方法

当前 Servlet 所在的 WEB 应用被卸载前调用. 用于释放当前 Servlet 所占用的资源

原创粉丝点击