在Java web模板的上进行编写

要求:

链接:https://pan.baidu.com/s/15NdAt-aiv-X9sRbMSfXYXQ 
提取码:7agw

web模板:

链接:https://pan.baidu.com/s/1Af33mSflqFHj-1gj4sOOpw 
提取码:wpye

对于这个web模板的修改是以测试的形式进行的,以前只是从零开始写一些简单的网页,没有接触过在模板的基础上修改网页,刚刚看到要求时,不知道从哪下手。

测试过后,感觉先了解模板的基本架构很重要,然后再按照要求去修改。我没有完成全部要求,只实现了一些,在编码的过程中遇到了许多问题,有的还待解决,以

后会进一步学习并解决问题。

模板的登录界面

登录的servlrt路径在login.html中已给出,下图

 

登录用的servlet

package com.Servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

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

import com.DBUtil.DBUtil;

public class LoginServlet  extends HttpServlet{
    private static final long serialVersionUID = 1L;

    //当从jsp跳转到servlet类时,首先执行service函数(这是定理)
    protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException {
        req.setCharacterEncoding("UTF-8");//设置字符集,避免乱码
        String username = req.getParameter("user");//获取jsp界面的username1和password1的值
        String password = req.getParameter("pwd");
        
        Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接
        Statement state =null;
        ResultSet rs = null;
        int f=0;
        try
        {
            String sql = "select * from user";//SQL语句
            state = conn.createStatement();            
            rs=state.executeQuery(sql);
            while(rs.next())
            {
                
                if(rs.getString("password").equals(password) && rs.getString("username").equals(username))
                {
                    f=1;
                    
                }
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }        
        finally
        {
            DBUtil.close(rs, state, conn);
        }
        
        if(f==1)
        {
            System.out.println("登录成功!");
            resp.sendRedirect(req.getContextPath()+"/main.html");
        }
        else
        {
            System.out.println("登录失败!");
            resp.sendRedirect(req.getContextPath()+"/login.html");
        }
    }
    
}

将该servlet的路径配置成上面所看到的路径

下面是xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>WJDC_web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  
  <servlet>  
    <servlet-name>CreateUserServlet</servlet-name>
    <servlet-class>com.Servlet.CreateUserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CreateUserServlet</servlet-name>
    <url-pattern>/CreateUserServlet/CreateUserServlet</url-pattern>
  </servlet-mapping>

  
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.Servlet.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/dengluServlet</url-pattern>
  </servlet-mapping>
</web-app>

注册界面的jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>

<%@page import="com.Servlet.*"%>
<%@page import="com.Bean.*"%>
<%@page import="com.DBUtil.*"%>
<%@page import="com.Servlet.*"%>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">



</style>
</head>
<body>

<div class="colorcloth">
<div class="container">
    <section>
        <form action="${pageContext.request.contextPath}/CreateUserServlet/CreateUserServlet" method="post" onsubmit="return check()">
        <!---${pageContext.request.contextPath}的目的是找到主工程的名字,/Servlet/Userservlet就是web.xml下面配置的路径,也就是servlet的路径--->
            <span class="user">用户名</span>
            <input type="text" name="user" class="buser" id="iuser" placeholder="  Usename">
            <br/>
            <span class="password">密码</span>
            <input type="password" name="password" class="bpassword" id="ipassword" placeholder="  Password">
            <br/>
            <span class="again-password">确认密码</span>
            <input type="password" name="again-password" class="bagain-password" id="iagain-password" placeholder="  Password">
            <br/>
            <span class="phone">手机号码</span>
            <input type="text" name="phone" class="bphone" id="iphone" placeholder="  Phone">
            <br/>
            <span class="unit">所属单位</span>
            <input type="text" name="unit" class="bunit" id="iunit" placeholder="  Unit">
            <br/>
            <input type="submit" value="创建" class="butn">
        </form>
    </section>
    
    <c:if test="${param.createerrortemp.equals('1') }">
    <div class="createerror" id="icreateerror">
        <p>两次输入的密码不一致</p>
    </div>
    </c:if>
    
</div>
</div>

<script type="text/javascript">

function check() {
    
    var username = document.getElementById("iuser");
    var password = document.getElementById("ipassword");
    var againpassword = document.getElementById("iagain-password");
    var phone = document.getElementById("iphone");
    var unit = document.getElementById("iunit");
    
    var changdu = phone.value.length;
    
    //非空
    if(username.value == '') {
        alert('用户名为空');
        username.focus();
        return false;
    }
    if(password.value == '') {
        alert('密码为空');
        password.focus();
        return false;
    }
    if(againpassword.value == '') {
        alert('第二次输入密码为空');
        againpassword.focus();
        return false;
    }
    if(phone.value == '') {
        alert('电话号码为空');
        phone.focus();
        return false;
    }
    
    if(changdu != 11){
        alert('电话号码长度错误');
        phone.focus();
        return false;
    }
    
    if(unit.value == '') {
        alert('所属单位为空');
        unit.focus();
        return false;
    }
    
    if(password.value != againpassword.value) {
        alert('密码不一致');
        password.focus();
        return false;
    }
    
}


</script>

</body>
</html>

注册所用的servlet

package com.Servlet;

import java.io.IOException;

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

import com.Dao.*;

public class CreateUserServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    //当从jsp跳转到servlet类时,首先执行service函数(这是定理)
    protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException {
        req.setCharacterEncoding("UTF-8");//设置字符集,避免乱码
        
        String username = req.getParameter("user");
        String password = req.getParameter("password");
        String againpassword = req.getParameter("again-password");
        String phone = req.getParameter("phone");
        String unit = req.getParameter("unit");
        
        if(!(password.equals(againpassword))) {
            resp.sendRedirect(req.getContextPath()+"/register.jsp?createerrortemp=1");
        }
        else {
            Dao dao = new Dao();
            dao.createUser(username, password, phone, unit);
            resp.sendRedirect(req.getContextPath()+"/main.html");
        }
    }
}

Dao文件

package com.Dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.Bean.*;
import com.DBUtil.DBUtil;

public class Dao {
    
    //创建账户
    public int createUser(String usernamee, String passwordd, String phonee, String unitt) {
        
        String username = usernamee;
        String password = passwordd;
        String phone = phonee;
        String unit = unitt;
        
        Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接
        Statement state =null;
        String sql = null;
        
        sql = "insert into user (username,password,phone,unit) values ('"+username+"','"+password+"','"+phone+"','"+unit+"')";
        
        try {
            state = conn.createStatement();
            state.executeUpdate(sql);//执行sql语句
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        return 0;
    }
    
    
    
}

对于系统菜单那一块的代码还是没弄明白,之后会继续学习,往下进行

posted @ 2019-03-02 20:30  L、、、  阅读(1377)  评论(0编辑  收藏  举报