【MVC】使用Servlet 作为控制器实现一个简单的登陆验证
来源:互联网 发布:php环境文件管理器 编辑:程序博客网 时间:2024/05/22 07:49
login.jsp
<body><!-- 输出出错提示 --><span style="color:red;font-weight:bold"><%if (request.getAttribute("err") != null){out.println(request.getAttribute("err") + "<br/>");}%></span>请输入用户名和密码:<!-- 登录表单,该表单提交到一个Servlet --><form id="login" method="post" action="login">用户名:<input type="text" name="name" /><br/>密 码:<input type="password" name="pass"/><br/><input type="submit" value="登录"/><br/></form></body>
welcome.jsp
<body><h3>欢迎登录</h3><%=session.getAttribute("name")%>,欢迎登录!</body>
LoginServlet.java
package servletDemo;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.sql.*; @WebServlet(name="login", urlPatterns={"/login"})public class LoginServlet extends HttpServlet{ private static final long serialVersionUID = 1L;//响应客户端请求的方法public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,java.io.IOException{String errMsg = "";//Servlet本身并不输出响应到客户端,因此必须将请求转发RequestDispatcher rd;//获取请求参数String name = request.getParameter("name");String pass = request.getParameter("pass");try{//Servlet本身,并不执行任何的业务逻辑处理,它调用JavaBean处理用户请求DbDao dd = new DbDao("com.microsoft.sqlserver.jdbc.SQLServerDriver","jdbc:sqlserver://localhost:1433;database = test","sa","1234");//查询结果集ResultSet rs = dd.query("select pass from user_table "+ "where name = ?",name);if (rs.next()){//用户名和密码匹配if (rs.getString("pass").equals(pass)){//获取session对象HttpSession session = request.getSession(true);//设置session属性,跟踪用户会话状态session.setAttribute("name" , name);//获取转发对象rd = request.getRequestDispatcher("/welcome.jsp");//转发请求rd.forward(request,response);}else{//用户名和密码不匹配时errMsg += "您的用户名密码不符合,请重新输入";}}else{//用户名不存在时errMsg += "您的用户名不存在,请先注册";}}catch (Exception e){e.printStackTrace();}//如果出错,转发到重新登录if (errMsg != null && !errMsg.equals("")){rd = request.getRequestDispatcher("/login.jsp");request.setAttribute("err" , errMsg);rd.forward(request,response);}}}
DbDao.java
package servletDemo;import java.sql.*; public class DbDao {private Connection conn;private String driver;private String url;private String name;private String pass;public DbDao(){}public DbDao(String driver , String url , String name , String pass){this.driver = driver;this.url = url;this.name = name;this.pass = pass; }//下面是各个成员属性的setter和getter方法public void setDriver(String driver) {this.driver = driver; }public void setUrl(String url) {this.url = url; }public void setName(String name) {this.name = name; }public void setPass(String pass) {this.pass = pass; }public String getDriver() {return (this.driver); }public String getUrl() {return (this.url); }public String getName() {return (this.name); }public String getPass() {return (this.pass); }//获取数据库连接public Connection getConnection() throws Exception{if (conn == null){Class.forName(this.driver);conn = DriverManager.getConnection(url,name,this. pass);}return conn;}//插入记录public boolean insert(String sql , Object... args)throws Exception{PreparedStatement pstmt = getConnection().prepareStatement(sql);for (int i = 0; i < args.length ; i++ ){pstmt.setObject( i + 1 , args[i]);}if (pstmt.executeUpdate() != 1){return false;}pstmt.close();return true;}//执行查询public ResultSet query(String sql , Object...args) //Object... args 可变参数 JDK1.5特性throws Exception{PreparedStatement pstmt = getConnection().prepareStatement(sql);for (int i = 0; i < args.length ; i++ ){pstmt.setObject( i + 1 , args[i]);}return pstmt.executeQuery();}//执行修改public void modify(String sql , Object...args)throws Exception{PreparedStatement pstmt = getConnection().prepareStatement(sql);for (int i = 0; i < args.length ; i++ ){pstmt.setObject( i + 1 , args[i]);}pstmt.executeUpdate();pstmt.close();}//关闭数据库连接的方法public void closeConn()throws Exception{if (conn != null && !conn.isClosed()){conn.close();}}}
sql server 2008
test 数据库下 user_table 表中 两个字段 user pass
0 0
- 【MVC】使用Servlet 作为控制器实现一个简单的登陆验证
- 使用 Servlet 作为控制器,标准MVC模式
- 使用 Servlet 作为控制器,标准MVC模式
- 使用Servlet作为控制器
- 使用servlet作为控制器
- 使用Servlet作为控制器
- JSP培训(6)——使用Servlet作为控制器实现MVC模式
- JSP培训(6)——使用Servlet作为控制器实现MVC模式
- jsp+servlet+jdbc实现简单的登陆验证
- 使用filter作为控制器的MVC
- struts2:使用Filter作为控制器的MVC
- 使用Filter作为控制器的MVC
- 10001---使用 Filter 作为控制器的 MVC
- Struts2_001_使用 Filter 作为控制器的 MVC
- 使用Servlet制作简单的登陆验证码
- 使用servlet 实现简单的验证码
- 一个简单登陆示例的MVC和MVP实现
- 利用servlet进行简单的登陆验证
- android笔记之autoCompleteTextView
- TCP分包方法 && 粘包处理策略
- 用C#开发一个WinForm版的批量图片压缩工具
- 以动态规划的思路理解Floyd算法
- 受限玻尔兹曼机用于协同过滤
- 【MVC】使用Servlet 作为控制器实现一个简单的登陆验证
- 软件测试论坛
- Ibatis与Hibernate的区别
- java 131211 数组
- 计算一个字节里有多少位被置1
- MyBatis多参数传递之Map方式示例
- C++对二进制文件的操作实例
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 如何学习英语更有效