利用servlet技术实现简单的登陆实例,主要技术有获取登陆界面的表单数据,链接数据库进行用户身份验证,页面跳转。
1、登陆界面的表单
out.println("<form action='/ManageUser/servlet/LoginCLServlet' method='post'>");
out.println("用户名:<input type='text' name='username' id='username'/><br/>");
out.println("密 码:<input type='password' name='userpwd' id='userpwd'/><br/>");
out.println("<input type='submit' value='登陆'><br/>");
out.println("</form>");
2、获取表单的数据
String username=request.getParameter("username");
String userpwd=request.getParameter("userpwd");
3、链接数据库
try{
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.得到链接
java.sql.Connection conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/" +
"manageuser","root","1990");
//3.创建preparedstatement
java.sql.PreparedStatement ps=conn.prepareStatement("select * from mu_user where user_name=?" +
"and user_pwd=?");
//给?赋值
ps.setString(1, username);
ps.setString(2, userpwd);
//4.执行操作
java.sql.ResultSet rs=ps.executeQuery();
//5.根据结果做处理
if(rs.next()){
//如果进来,则合法
response.sendRedirect("/ManageUser/servlet/MainFrame?username="+username);
}else{
response.sendRedirect("/ManageUser/servlet/LoginServlet");
//不合法
}
}catch(Exception e){
e.printStackTrace();
}
4、实现跳转的两种方式请求重定向(sendRedirect)和请求转发(forward)的区别
请求重定向是web容器让服务器调用另一个web资源来处理请求。请求转发是web容器让浏览器转向请求另一个资源来处理。由此可见,请求重定向的效率要高于请求转发的效率。