JSP/Servlet/JDBC完成一个简单登录功能
JSP部分:
<form action="login" name="loginForm" method="post">
<table align="center">
<tr>
<td>用户名</td>
<td><input type="text" name="uname" /></td>
</tr>
<tr>
<td>密 码</td>
<td><input type="password" name="upwd" size="21" /></td>
</tr>
<tr>
<td><input type="submit" value=" 登录 " /></td>
<td><input type="button" value=" 注册 " click="window.location.href='reg.jsp'"/>
<font color="red"><%=request.getAttribute("error")==null ? "" : request.getAttribute("error")%></font>
</td>
</tr>
</table>
</form>
Xml部分:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.jsp.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
Servlet部分:
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gbk");
//获取用户名和密码
String uname = request.getParameter("uname");
String upwd = request.getParameter("upwd");
System.out.println(uname+" "+upwd);
//访问数据库
UserDao userdao = new UserDao();
User user = userdao.QueryByName(uname);
if(user==null){
request.setAttribute("error","用户名不存在");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else if(!user.getPwd().equals(upwd)){
request.setAttribute("error","密码错误");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else{
List<User> userList = userdao.QueryList();
//将登录用户名 与 用户列表存入request作用域
request.setAttribute("uname",uname);
request.setAttribute("userList",userList);
request.getRequestDispatcher("/main.jsp").forward(request, response);
}
Dao部分:
public User QueryByName(String uname) {
User user =null;
String sql = "select * from inf where name='"+uname+"'";
try {
conn=DBConnection.getConnection();
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next()){
user = new User();
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setPwd(rs.getString(3));
user.setAge(rs.getInt(4));
user.setGender(rs.getString(5));
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBConnection.closeAll(rs, null, stmt);
}
return user;
}
DBconnection部分:
public static void init() {
try {
// 加载驱动类
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("未找到驱动类...");
}
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/wz", "root", "");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库内部错误,请检查...");
}
}