首先编写登陆和注册的页面,新建login.jsp和register.jsp页面。
<%@page import="javax.imageio.spi.RegisterableService"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
注册
<%-- rel="stylesheet" href="${pageContext.request.contextPath}/css/register.css" type="text/css"> --%>
rel="stylesheet" href="<%=request.getContextPath()%>/css/register.css" type="text/css">
注册
<%@page import="javax.imageio.spi.RegisterableService"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
注册
<%-- rel="stylesheet" href="${pageContext.request.contextPath}/css/register.css" type="text/css"> --%>
rel="stylesheet" href="<%=request.getContextPath()%>/css/register.css" type="text/css">
登陆
然后再配置有关servlet页面的信息在web.xml,每个jsp页面对应响应的servlet的java文件。
bookstore1
page/register.jsp
register
com.neusoft.bookstore.web.control.Register
register
/register
login
com.neusoft.bookstore.web.control.Login
login
/login
配置好对应的servlet信息,在新建对应的java类,分别是Login.java和Register.java文件。
public class Register extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
req.setCharacterEncoding("UTF-8");
String name=req.getParameter("username");
String password=req.getParameter("password");
resp.setHeader("Content-type","text/html;charset=UTF-8");
System.out.println("用户名字是:"+name+"密码是:"+password);
if(name==null||name.trim().isEmpty()){
req.setAttribute("msg", "帐号不能为空");
req.getRequestDispatcher("page/register.jsp").forward(req, resp);
return;
}
if(password==null||password.trim().isEmpty()){
req.setAttribute("msg", "密码不能为空");
req.getRequestDispatcher("page/register.jsp").forward(req, resp);
return;
}
UserDao u = new UserDao();
System.out.println("用户名字是:"+name+"密码是:"+password);
u.addUser(name, password);
System.out.println("用户名字是:"+name+"密码是:"+password);
resp.sendRedirect("page/login.jsp");
resp.getWriter().write("用户名字是:"+name+"密码是:"+password);
}
}
public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
req.setCharacterEncoding("UTF-8");
String name=req.getParameter("username");
String password=req.getParameter("password");
resp.setHeader("Content-type","text/html;charset=UTF-8");
System.out.println("用户名字是:"+name+"密码是:"+password);
UserDao u=new UserDao();
String pwd = u.findUsername(name,password);
if (pwd!=null) {
resp.sendRedirect("index.jsp");
}
System.out.println("用户名字是:"+name+"密码是:"+password);
System.out.println("用户名字是:"+name+"密码是:"+pwd);
System.out.println("登陆成功");
}
}
然后再配置有关数据库有关的文件UserDao.java文件。
public class UserDao {
public String findUsername(String username,String pwd){
String psw = null;
Connection con =null;
PreparedStatement pstmt =null;
ResultSet rs = null;
try {
String driver ="com.mysql.jdbc.Driver";
String url ="jdbc:mysql://localhost:3306/bookstore";
String user ="root";
String password ="root";
Class.forName(driver);
con = (Connection) DriverManager.getConnection(url, user, password);
String sql = "select password from user1 where user=? and password=?";
pstmt = (PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2,pwd);
rs = pstmt.executeQuery();
if(rs==null){
return null;
}
if(rs.next()){
psw=rs.getString("password");
}else{
psw=null;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(pstmt!=null)pstmt.close();
if(con!=null)con.close();
}
catch (SQLException e) {
}
}
return psw;
}
public void addUser(String username,String psw){
Connection con =null;
PreparedStatement pstmt =null;
try {
String driver ="com.mysql.jdbc.Driver";
Class.forName(driver);
String url ="jdbc:mysql://localhost:3306/bookstore";
String user ="root";
String password ="root";//改为自己的用户名密码和数据库名
con = (Connection) DriverManager.getConnection(url, user, password);
String sql = "INSERT INTO user (name,password)VALUES(?,?)";
pstmt = (PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, psw);
pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(pstmt!=null)
pstmt.close();
if(con!=null)
con.close();
}
catch (SQLException e) {
}
}
}
}
登陆成功就会进入index.jsp页面