首先用一个JavaBean封装数据库操作,即mvc中的模型

JdbcBean.java

package data;
import java.sql.*;
public class JdbcBean {
private String DBDriver="com.mysql.jdbc.Driver";
private String DBUrl="jdbc:mysql://localhost:3306/test";
private String DBUser="root";
private String DBPassword="686175";
public Connection conn=null;
public ResultSet rs=null;
public ResultSet query(String sql)throws Exception{
try{
Class.forName(DBDriver);
conn=DriverManager.getConnection(DBUrl,DBUser,DBPassword);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
return rs;
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return null;
}
public void update(String sql)throws Exception{
try{
Class.forName(DBDriver);
conn=DriverManager.getConnection(DBUrl,DBUser,DBPassword);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
}
}

在src的data包中另一个控制器Servlet,用于处理连接数据库的操作,此次project用的数据库是MySQL

LoginServlet.java

package data;

import java.io.IOException;
import java.sql.ResultSet; import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String toJSP="";
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gbk");
String username=request.getParameter("username");
String password=request.getParameter("password");
String sql="select * from user where username='"+username+"'" +
"&&password='"+password+"'";
JdbcBean jdbc=new JdbcBean();
try{
ResultSet rs=jdbc.query(sql);
if(rs.next()){
toJSP="success.jsp";
}
else{
toJSP="error.jsp";
}
rs.close();
}
catch(Exception e){
System.out.println("发生查询异常");
}
RequestDispatcher rd=request.getRequestDispatcher(toJSP);
rd.forward(request, response);
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
}

接下来就是用jsp写的视图,显示页面操作

登录页面login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>My JSP 'login.jsp' starting page</title>
<script>
function myFunction(){
if(myForm.username.value==""){
alert("username不能为空");
}
else if(myForm.password.value==""){
alert("密码不能为空");
}
else{
myForm.submit();
}
}
</script>
</head>
<body>
<form action="LoginServlet" method="post" name="myForm">
<center>
<table>
<tr>
<td>username</td>
<td><input type="text" name="username"></td>
<td>username不能为空</td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password"></td>
<td>密码不能为空</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交" onclick="myFunction()">
<input type="reset" value="取消"></td>
</tr>
</table>
</center>
</form>
</body>
</html>

登录成功页面success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>My JSP 'success.jsp' starting page</title>
</head>
<body>
<%
out.println("登录成功!");
%>
</body>
</html>

假设登录的username和password和存放在数据库的数据对不上,就显示登录错误页面error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>My JSP 'error.jsp' starting page</title>
</head>
<body>
<%
out.println("username或password错误,登录失败!");
%>
</body>
</html>



输入usernameming,passwordming

输入usernamelin,passwordli

完整代码包:http://download.csdn.net/detail/u011731233/8093745

最新文章

  1. 扩展卡尔曼滤波(MRPT)
  2. 关于一个新的DOM选择器querySelector
  3. sessionID和cookie
  4. 【CSS3】Advanced8:CSS Backgrounds: Multiples, Size, and Origin
  5. 【CF】509E Pretty Song
  6. java之log4j的配置
  7. 一场围绕着‘Deeping Learning’的高考
  8. [OpenCV学习笔记2][Mat数据类型和操作]
  9. 深入浅出Java concurrent
  10. python3——模块
  11. PHP整洁之道
  12. 轴对称 Navier-Stokes 方程组的点态正则性准则 II
  13. 通过安全网闸访问MongoDB
  14. sitecore开发入门之如何在代码中获取SITECORE图像URL
  15. BZOJ 3473 字符串
  16. 近20个绚丽实用的jQuery/CSS3侧边栏菜单(转载)
  17. php info
  18. Linux下鼠标滚轮速度调整
  19. javascript取querystring,存储为hash
  20. shell 进制转换

热门文章

  1. c++实用技巧
  2. LinkedHashMap相关信息介绍(转)
  3. Java-WebSocket 项目的研究(三) WebSocketClient 类 具体解释
  4. tasklet和workqueue的选择
  5. 图像特征提取方法:Bag-of-words
  6. TextKit学习(四)通过boundingRectWithSize:options:attributes:context:计算文本尺寸
  7. Git使用之搭建基于SSH的Gitserver(上篇)
  8. ExtJS学习-------Ext正确Dom操作:Ext.get Ext.fly Ext.getDom
  9. poj3281(最大流)
  10. Android动绘图标——I am not a gif maker,I am a developer