1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Jsp+Servlet+JavaBean实现最基本的注册登陆功能

Jsp+Servlet+JavaBean实现最基本的注册登陆功能

时间:2024-06-29 14:27:49

相关推荐

Jsp+Servlet+JavaBean实现最基本的注册登陆功能

Jsp+Servlet+JavaBean是MVC思想,Jsp=V(视图) Servlet=C(控制器) JavaBean=M(模型)

一.创建一个注册页面和登陆页面(V层)

<html><head><title>注册</title></head><body><h3>小可爱请注册</h3><form action="/registerServlet" name="register" method="post"><br><input name="username" type="text" placeholder="请设置账户"><br><input name="password" type="password" placeholder="请设置密码"><br><input type="submit" value="注册"></form></body></html>

<html><head><title>登陆</title></head><body><h3>小可爱请登陆</h3><form action="/loginServlet" name="register" method="post"><br><input name="username" type="text" placeholder="请输入账号"><br><input name="password" type="password" placeholder="请输入密码"><br><input type="submit" value="登陆" "></form></body></html>

二.创建JavaBean层实现对数据的查询与插入(M层)

创建Dao层用户实体类

package com.JavaBean;/*** * @author: Doomed* @date: /1/15* @place: usth**/public class User {private String name;private String password;//封装用户信息 -- JavaBean层public String getName(){return name;}public void setName(String name){this.name = name;}public String getPassword(){return password;}public void setPassword(String password){this.password = password;}}

创建Dao层公共工具类

package com.JavaBean;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DB_Dao {static final String url = "jdbc:mysql://localhost/..";static final String user = "root";static final String pass = "root";static final String driver = "com.mysql.jdbc.Driver";Connection conn = null;//Daopublic Connection getCon() throws ClassNotFoundException, SQLException {//注册驱动Class.forName(driver);//连接驱动conn = DriverManager.getConnection(url, user, pass);return conn;}//关闭资源,避免出现异常public static void close(Connection con, PreparedStatement ps , ResultSet rs){if(rs != null){try {rs.close();}catch(SQLException e){e.printStackTrace();}}if(ps != null){try {ps.close();}catch(SQLException e){e.printStackTrace();}}if(con != null){try {con.close();}catch(Exception e){e.printStackTrace();}}}}

创建Dao层实现类

package com.JavaBean;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/*** * @author: Doomed* @date: /1/15* @place: usth**/public class UserDaoImpl implements UserDao{Connection conn = null;PreparedStatement ps = null;PreparedStatement ps1 = null;ResultSet rs = null;public boolean setUser(User user) {DB_Dao dao = new DB_Dao();try {conn = dao.getCon();//判断传送过来的username数据库中是否已经存在,如果存在则返回falseString sql1 = "select count(1) from userinfo where username = ?";ps1 = conn.prepareStatement(sql1);ps1.setString(1,user.getName());rs = ps1.executeQuery();while(rs.next()){if(rs.getInt(1)>0){//close(conn,ps,rs);return false;}}//如果没被注册,执行插入语句String sql = "insert into userinfo(username,password) values(?,?)";ps = conn.prepareStatement(sql);ps.setString(1,user.getName());ps.setString(2,user.getPassword());//执行更新ps.executeUpdate();//close(conn,ps,rs);return true;} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}//判断账号是否已被注册return false;}//=====登陆校验=====public User getUser(User user){DB_Dao dao = new DB_Dao();try {conn = dao.getCon();String sql = "select * from userinfo where username = ? and password = ?";ps = conn.prepareStatement(sql);ps.setString(1, user.getName());ps.setString(2, user.getPassword());//执行全部查询rs = ps.executeQuery();User users = null;if(rs.next()){users = new User();users.setName(rs.getString("username"));users.setPassword(rs.getString("password"));//close(conn,ps,rs);return user;}else {//close(conn,ps,rs);return null; }}catch (ClassNotFoundException | SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return user;}}

创建Dao层接口类

package com.JavaBean;// JDBC -- JavaBean层public interface UserDao{//用户登录方法的声明public User getUser(User user);//用户注册方法的声明public boolean setUser(User user);}

三.创建servlet层进行登陆的业务逻辑处理(C层)

创建loginServlet类处理登陆业务

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.JavaBean.*;/*** * @author: Doomed* @date: /1/15* @place: usth**/public class loginServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public loginServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//接收从jsp表单传过来的数据String name = request.getParameter("username");String password = request.getParameter("password");//判断表单数据是否传送过来System.out.println(name +" "+password );//获取login.jsp页面提交的账号和密码设置到实体类User中User user=new User();user.setName(name);user.setPassword(password);UserDao dao = new UserDaoImpl();User us = dao.getUser(user);if(us != null){request.getSession(true).setAttribute("usename", name);response.sendRedirect("/loginSucceed.html");}else{response.sendRedirect("/loginFail.html");}}}

创建registerServlet类处理注册业务

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.JavaBean.*;/*** * @author: Doomed* @date: /1/15* @place: usth**/public class registerServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public registerServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//接收从jsp表单传过来的数据String name = request.getParameter("username");String password = request.getParameter("password");//判断表单数据是否传送过来System.out.println(name +" "+password );//获取registerServlet.jsp页面提交的账号和密码设置到实体类User中User user=new User();user.setName(name);user.setPassword(password);UserDao dao = new UserDaoImpl();boolean flag = dao.setUser(user);if(flag == true){response.sendRedirect("/registerSucceed.html");}else{response.sendRedirect("/registerFail.html");}}}

配置.xml文件

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>blogs</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>loginServlet</servlet-name> <servlet-class>com.Servlet.loginServlet</servlet-class> </servlet><servlet-mapping><servlet-name>loginServlet</servlet-name><url-pattern>/loginServlet</url-pattern></servlet-mapping><servlet> <servlet-name>registerServlet</servlet-name> <servlet-class>com.Servlet.registerServlet</servlet-class> </servlet><servlet-mapping><servlet-name>registerServlet</servlet-name><url-pattern>/registerServlet</url-pattern></servlet-mapping></web-app>

效果图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。