Loading

今日报告-02-外加今日学习总结

所花时间(包括上课):8h      

代码量(行):350

发表博客:1篇(包括本篇) 

了解到的知识点:用SERVLET实现不同用户身份的-注册-登录-系统页面,知识点有数据库 JSP SERVLET HTML SQL等,

主要集中在表单处理方面,jsp和servlet,sql都涉及到表单处理的知识

 

参考了菜鸟教程:Servlet:https://www.runoob.com/servlet/servlet-database-access.html

        JSP:https://www.runoob.com/jsp/jsp-database-access.html

        SQL:https://www.runoob.com/sql/sql-select.html

        HTML表单:https://www.runoob.com/html/html-forms.html

 

2.23日的补充:补充说明一下,开始的软件工程日报我以为是要和具体的知识写在一篇博客里,后来意识到并不是,

之后会改,这几篇就没办法了,此外,除去前三篇,我每日打卡的博客数量统计就不包括打卡的那篇博客了。

 

今天成功做到了用SERVLET实现不同用户身份的-注册-登录-系统页面。可以区分不同用户,实现注册账户并登录,不同的身份会进入不同的页面,而注册的身份信息则会存储进入数据库中。(题目可以见我前几天的博客)代码我会放在下面。

今天重新复学了Servlet和SQL,JSP,HTML的相关知识,并以JAVA本学期开学课前测试的题目为练习。今天可以说是收获颇丰。

 

项目截图和数据库截图(截至今天进度):

进入网页后可以进入登录页面

 

 输入正确的账号密码可以进入不同的页面:分别是:用户页面,撰稿人页面,管理员页面,点注册可以进入注册页面,注册后显示“注册成功”,点击可以返回。

 

登录时输入账号密码身份若有误,会分别显示账号错误,密码错误或者是身份错误。点击确定后能返回登录页面重新登录

 

主要代码:

login.java

  1 package Test.test1;
  2 
  3 import Test.com.Bean;
  4 import Test.com.Database;
  5 
  6 import javax.servlet.ServletException;
  7 import javax.servlet.annotation.WebServlet;
  8 import javax.servlet.http.HttpServlet;
  9 import javax.servlet.http.HttpServletRequest;
 10 import javax.servlet.http.HttpServletResponse;
 11 import java.io.IOException;
 12 import java.io.PrintWriter;
 13 import java.sql.*;
 14 
 15 
 16 @WebServlet("/login")
 17 public class login extends HttpServlet {
 18     private static final long serialVersionUID = 1L;
 19     Connection conn = null;
 20     Statement stmt = null;
 21     @Override
 22     public void init() throws ServletException {
 23         String dburl = "jdbc:mysql://localhost:3306/test001?useSSL=false&serverTimezone=UTC";
 24         String username = "root";
 25         String password = "1506583922";
 26         try{
 27             Class.forName("com.mysql.cj.jdbc.Driver");
 28             conn = DriverManager.getConnection(dburl,username,password);
 29             stmt = conn.createStatement();
 30         }catch(SQLException se){
 31             // 处理 JDBC 错误
 32             se.printStackTrace();
 33         }catch(Exception e){
 34             // 处理 Class.forName 错误
 35             e.printStackTrace();
 36         }
 37     }
 38     @Override
 39     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 40         // 设置响应内容类型
 41         response.setContentType("text/html;charset=UTF-8");
 42 
 43         PrintWriter out = response.getWriter();
 44         String title = "登录页面";
 45 
 46         String put_name =new String(request.getParameter("put_name").getBytes("ISO8859-1"),"UTF-8");
 47         String put_password = new String(request.getParameter("put_password").getBytes("ISO8859-1"),"UTF-8");
 48         String put_identity = new String(request.getParameter("put_identity").getBytes("ISO8859-1"),"UTF-8");
 49 
 50 
 51 
 52         String sql="select * from user_info where user_name="+"'"+put_name+"'";//定义一个查询语句
 53         Database c = new Database();
 54         ResultSet rs=c.executeQuery(sql);//执行查询语句
 55         try {
 56             if(rs.next())
 57             {
 58                 //将输入的密码与数据库密码相比对,执行相应操作
 59                 if(put_password.equals(rs.getObject("user_password")))
 60                 {
 61                     if(put_identity.equals(rs.getObject("user_identity")))
 62                     {
 63                         switch (put_identity){
 64                             case "普通用户":response.sendRedirect("normal_user.jsp"); break;
 65                             case "撰稿人":response.sendRedirect("writer.jsp"); break;
 66                             case "管理员":response.sendRedirect("admin.jsp"); break;
 67                         }
 68                     }
 69                     else{
 70                         out.print("<script language='javaScript'> alert('登陆身份错误');</script>");
 71                         response.setHeader("refresh", "0;url=login1.jsp");
 72                     }
 73 
 74                 }
 75                 else{
 76                     out.print("<script language='javaScript'> alert('密码错误');</script>");
 77                     response.setHeader("refresh", "0;url=login1.jsp");
 78                 }
 79             }
 80             else {
 81                 out.print("<script language='javaScript'> alert('用户名错误');</script>");
 82                 response.setHeader("refresh", "0;url=login1.jsp");
 83             }
 84         } catch (SQLException e) {
 85             throw new RuntimeException(e);
 86         }
 87 
 88 
 89     }
 90 
 91     @Override
 92     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 93         doGet(request, response);
 94     }
 95 
 96     @Override
 97     public void destroy() {
 98         try {
 99             conn.close();
100         }catch (Exception e){
101             e.printStackTrace();
102         }
103     }
104 }

register.java

 1 package Test.test1;
 2 
 3 import Test.com.Bean;
 4 import Test.com.Database;
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 import java.io.IOException;
11 import java.io.PrintWriter;
12 import java.sql.*;
13 
14 
15 @WebServlet("/register")
16 public class register extends HttpServlet {
17     private static final long serialVersionUID = 1L;
18     Connection conn = null;
19     Statement stmt = null;
20     @Override
21     public void init() throws ServletException {
22         String dburl = "jdbc:mysql://localhost:3306/test001?useSSL=false&serverTimezone=UTC";
23         String username = "root";
24         String password = "1506583922";
25         try{
26             Class.forName("com.mysql.cj.jdbc.Driver");
27             conn = DriverManager.getConnection(dburl,username,password);
28             stmt = conn.createStatement();
29         }catch(SQLException se){
30             // 处理 JDBC 错误
31             se.printStackTrace();
32         }catch(Exception e){
33             // 处理 Class.forName 错误
34             e.printStackTrace();
35         }
36     }
37     public void addin(String user_name,String user_password,String user_identity){
38 
39         PreparedStatement preparedStatement=null;
40         try {
41             String sql = "INSERT INTO user_info (user_name,user_password,user_identity) values (?,?,?)";
42             preparedStatement=conn.prepareStatement(sql);
43             preparedStatement.setString(1,user_name);
44             preparedStatement.setString(2,user_password);
45             preparedStatement.setString(3,user_identity);
46             preparedStatement.executeUpdate();
47             //System.out.println("添加成功");
48 
49         } catch (SQLException  e) {
50             e.printStackTrace();
51         }finally{
52 
53         }
54     }
55     @Override
56     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
57         // 设置响应内容类型
58         response.setContentType("text/html;charset=UTF-8");
59         request.setCharacterEncoding("UTF-8");
60         PrintWriter out = response.getWriter();
61 
62         String reg_name =new String(request.getParameter("reg_name"));
63         String reg_password = new String(request.getParameter("reg_password"));
64         String reg_identity = new String(request.getParameter("reg_identity"));
65 
66         addin(reg_name,reg_password,reg_identity);
67 
68 
69         String site = new String("http://localhost:8080/Test01_war_exploded/mess.jsp");
70         response.setStatus(response.SC_MOVED_TEMPORARILY);
71         response.setHeader("Location", site);
72     }
73 
74     @Override
75     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
76         doGet(request, response);
77     }
78 
79     @Override
80     public void destroy() {
81         try {
82             conn.close();
83         }catch (Exception e){
84             e.printStackTrace();
85         }
86     }
87 }

login1.jsp

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: 23944
 4   Date: 2023/2/21
 5   Time: 16:33
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <!DOCTYPE html>
10 <html>
11 <head>
12   <meta charset="utf-8">
13   <title>登陆页面</title>
14 </head>
15 <body>
16 <form action="login" method="POST">
17   <table border="0">
18     <tr>
19       <td>账号:</td>
20       <td><input type="text" name="put_name"></td>
21     </tr>
22     <tr>
23       <td>密码:</td>
24       <td><input type="password" name="put_password"></td>
25     </tr>
26   </table>
27   <td>登录身份:</td>
28   <input type="radio" name="put_identity" value="普通用户">普通用户
29   <input type="radio" name="put_identity" value="撰稿人">撰稿人
30   <input type="radio" name="put_identity" value="管理员">管理员
31   <br>
32   <input type="submit" value="登录">
33 
34 </form>
35 <input type="submit" value="注册"onclick="location.href='register0.jsp'">
36 </body>
37 </html>

register0.jsp

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: 23944
 4   Date: 2023/2/21
 5   Time: 16:33
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page language="java" contentType="text/html; charset=UTF-8"
 9          pageEncoding="UTF-8"%>
10 <!DOCTYPE html>
11 <html>
12 <head>
13     <meta charset="UTF-8">
14     <title>注册</title>
15 </head>
16 <body>
17 <form action="register" method="POST">
18     <p style="text-align:center;color: black; font-family: 宋体; font-size: 20px">
19 
20         <font face="楷体" size="2" color=black> 账号:</font>
21         <input type="text" name="reg_name" maxlength="8">
22         <br>
23         <br>
24         <font face="楷体" size="2" color="black">密码:</font>
25         <input type="password" name="reg_password" maxlength="50">
26         <br>
27         <br>
28         <font face="楷体" size="2" color="black">身份:</font>
29         <input type="radio" size="2" name="reg_identity" value="普通用户" checked>普通用户
30         <input type="radio" size="2" name="reg_identity" value="撰稿人" checked>撰稿人
31 
32         <br>
33 
34         <br><input type="submit" value="提交" />
35         <br>
36         <br> <input type="button" value="返回" onclick="location.href='login1.jsp'" /> <br>
37     </p>
38 </form>
39 </body>
40 </html>

Database.java

package Test.com;

import java.sql.*;

public class Database {

    private Connection conn = null;
    private Statement stmt = null;
    private String driverStr = "com.mysql.jdbc.Driver";
    private String dburl = "jdbc:mysql://localhost:3306/test001?useSSL=false&serverTimezone=UTC";
    private String username = "root";
    private String password = "1506583922";
    public Database() {
        try {
            Class.forName(driverStr);
            conn = DriverManager.getConnection(dburl, username, password);
            stmt = conn.createStatement();
        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        } catch (Exception e) {
            // 处理 Class.forName 错误
            e.printStackTrace();
        }

    }
    public ResultSet executeQuery(String s){
        ResultSet rs = null;
        System.out.print("--查询语句:" + s + "\n");
        try {
            rs = stmt.executeQuery(s);
        } catch (Exception ex) {
            System.out.println("执行查询错误!");
        }
        return rs;
    }
    public void close() {
        try {
            stmt.close();
            conn.close();
        } catch (Exception e) {
        }
    }
}

 

 继续努力!

 

posted @ 2023-02-21 21:31  冰稀饭Aurora  阅读(30)  评论(0编辑  收藏  举报