三、servlet的簡單創建

servlet的簡單創建


一、手動創建

比較麻煩不介紹

二、通過Myeclipse創建

(1)創建項目TestServlet
這裏寫圖片描述
(2)web.xml會自動被系統配置

<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">

  <!-- 通過<servlet>聲明一個servlet對象 -->
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <!-- 指定servlet的名稱爲“ServletTest” -->
    <servlet-name>ServletTest</servlet-name>
    <!-- “ServletTest”在哪個包中 -->
    <servlet-class>servlet.ServletTest</servlet-class>
  </servlet>


<!-- “mapping爲映射”映射訪問servlet的URL -->
  <servlet-mapping>
  <!-- 指定servlet的名稱爲“ServletTest” -->
    <servlet-name>ServletTest</servlet-name>
    <!-- 指定訪問URL的路徑 -->
    <url-pattern>/servlet/ServletTest</url-pattern>
  </servlet-mapping>

</web-app>

三、一個簡單註冊程序

創建一個項目Servlet
這裏寫圖片描述

1、創建reg.jsp提交頁面

 <body>
    <h1>用戶註冊</h1>
    <hr>
    <form name="regForm" action="servlet/RegServlet" method="post" >
              <table border="0" width="800" cellspacing="0" cellpadding="0">
                <tr>
                    <td class="lalel">用戶名:</td>
                    <td class="controler"><input type="text" name="username" /></td>
                </tr>
                <tr>
                    <td class="label">密碼:</td>
                    <td class="controler"><input type="password" name="mypassword" ></td>

                </tr>
                <tr>
                    <td class="label">確認密碼:</td>
                    <td class="controler"><input type="password" name="confirmpass" ></td>

                </tr>
                <tr>
                    <td class="label">電子郵箱:</td>
                    <td class="controler"><input type="text" name="email" ></td>

                </tr>
                <tr>
                    <td class="label">性別:</td>
                    <td class="controler"><input type="radio" name="gender" checked="checked" value="Male"><input type="radio" name="gender" value="Female"></td>

                </tr>

                <tr>
                    <td class="label">出生日期:</td>
                    <td class="controler">
                      <input name="birthday" type="text" id="control_date" size="10"
                      maxlength="10" onclick="new Calendar().show(this);" readonly="readonly" />
                    </td>
                </tr>
                <tr>
                    <td class="label">愛好:</td>
                    <td class="controler">
                    <input type="checkbox" name="favorite" value="nba"> NBA &nbsp;
                      <input type="checkbox" name="favorite" value="music"> 音樂 &nbsp;
                      <input type="checkbox" name="favorite" value="movie"> 電影 &nbsp;
                      <input type="checkbox" name="favorite" value="internet"> 上網 &nbsp;
                    </td>
                </tr>
                <tr>
                    <td class="label">自我介紹:</td>
                    <td class="controler">
                        <textarea name="introduce" rows="10" cols="40"></textarea>
                    </td>
                </tr>
                <tr>
                    <td class="label">接受協議:</td>
                    <td class="controler">
                        <input type="checkbox" name="isAccept" value="true">是否接受霸王條款
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <input type="submit" value="註冊"/>&nbsp;&nbsp;
                        <input type="reset" value="取消"/>&nbsp;&nbsp;
                    </td>
                </tr>
              </table>
            </form>
  </body>

2、在src中創建entity包,同時創建Users類,用戶實體類

package entity;

import java.util.Date;

public class Users {
    public Users(){

    }
    private String username;
    private String mypassword;
    private String email;
    private String gender;
    private String introduce;
    private boolean flag;
    private String[]favorites;
    private Date birthday;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getMypassword() {
        return mypassword;
    }
    public void setMypassword(String mypassword) {
        this.mypassword = mypassword;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getIntroduce() {
        return introduce;
    }
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
    public boolean isFlag() {
        return flag;
    }
    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public String[] getFavorites() {
        return favorites;
    }
    public void setFavorites(String[] favorites) {
        this.favorites = favorites;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }


}

3、在src中創建servlet包,同時創建RegServlet來處理業務邏輯

package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import entity.Users;

public class RegServlet extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public RegServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        Users users=new Users();
        String username,mypassword,email,gender,introduce,flag;
        String []favorites;
        Date birthday;
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        try {
            username=request.getParameter("username");
            mypassword=request.getParameter("mypassword");
            email=request.getParameter("email");
            gender=request.getParameter("gender");
            introduce=request.getParameter("introduce");
            //判斷獲取過來的flag是否爲空
            if(request.getParameterValues("flag")!=null){
                flag=request.getParameter("flag");
            }else {
                flag="false";
            }

            favorites=request.getParameterValues("favorite");
            birthday=sdf.parse(request.getParameter("birthday"));
            users.setBirthday(birthday);
            users.setEmail(email);
            users.setGender(gender);
            users.setFavorites(favorites);
            users.setIntroduce(introduce);
            users.setMypassword(mypassword);
            users.setUsername(username);
            //判斷flag提交的是true或者false
            if(flag.equals("true")){
                users.setFlag(true);
            }
            else {
                users.setFlag(false);
            }
            //將users內容保存在session中
            request.getSession().setAttribute("regUser", users);
            //跳轉到userinfo.jsp中
            request.getRequestDispatcher("../userinfo.jsp").forward(request, response);         
        } catch (Exception e) {
            // TODO: handle exception
        }
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

4、創建userinfo.jsp接收信息

<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=utf-8"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'userinfo.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <style type="text/css">
     .title{
         width: 30%;    
         background-color: #CCC;
         font-weight: bold;
     }
     .content{
         width:70%;
         background-color: #CBCFE5;
     }

   </style>  
  </head>

  <body>
    <h1>用戶信息</h1>
    <hr>
    <center>
     <jsp:useBean  id="regUser" class="entity.Users" scope="session"/>   
     <table width="600" cellpadding="0" cellspacing="0" border="1">
        <tr>
          <td class="title">用戶名:</td>
          <td class="content">&nbsp;<jsp:getProperty name="regUser" property="username"/></td>
        </tr>
        <tr>
          <td class="title">密碼:</td>
          <td class="content">&nbsp;<jsp:getProperty name="regUser" property="mypassword"/></td>
        </tr>
        <tr>
          <td class="title">性別:</td>
          <td class="content">&nbsp;<jsp:getProperty name="regUser" property="gender"/></td>
        </tr>
        <tr>
          <td class="title">E-mail:</td>
          <td class="content">&nbsp;<jsp:getProperty name="regUser" property="email"/></td>
        </tr>
        <tr>
          <td class="title">出生日期:</td>
          <td class="content">&nbsp;
            <% 
               SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
               String date = sdf.format(regUser.getBirthday());

            %>
             <%=date%>
          </td>
        </tr>
        <tr>
          <td class="title">愛好:</td>
          <td class="content">&nbsp;
            <% 
               String[] favorites = regUser.getFavorites();
               for(String f:favorites)
               {
            %>
                <%=f%> &nbsp;&nbsp;
            <% 
               }
            %>
          </td>
        </tr>
        <tr>
          <td class="title">自我介紹:</td>
          <td class="content">&nbsp;<jsp:getProperty name="regUser" property="introduce"/></td>
        </tr>
        <tr>
          <td class="title">是否介紹協議:</td>
          <td class="content">&nbsp;<jsp:getProperty name="regUser" property="flag"/></td>
        </tr>
     </table>
    </center>
  </body>
</html>

5、web.xml配置文件

 <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>RegServlet</servlet-name>
    <servlet-class>servlet.RegServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>RegServlet</servlet-name>
    <url-pattern>/servlet/RegServlet</url-pattern>
  </servlet-mapping>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章