今日报告-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) { } } }
继续努力!
作者:冰稀饭Aurora
出处:https://www.cnblogs.com/rsy-bxf150/p/17142541.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!