这是JSP页面:
<%@ page contentType="text/html;charset=gb2312"%><script language="JavaScript">
function checkform(form) {
if(form.username.value==""||form.userpasswd.value==""){
alert("用户名或密码为空!");
return false;
}
return true;
}
</script><html>
<head>
<title>欢迎光临</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br><br><br><br><br>
<body>
<form method=post action="manager.jsp" onSubmit="return checkform(this)">
<table width=500 border=0 height=300 align=center cellspacing=0 cellpadding=0 bgcolor=ffcc00>
<tbody>
<tr height="20%">
<td align="center">
<br><br>
<font size=6><b>物业管理系统</b></font>
</td>
</tr>
<tr height="70%">
<td>
<table width="100%">
<tbody>
<tr height="30%">
<td width="49%" align="right">
<font size=5>角 色:</font>
</td>
<td width="51%" align="left">
<select name="role">
<option value="0">管理员</option>
<option value="1">住户</option>
<option value="2">员工</option>
</select>
</td>
</tr>
<tr height="30%">
<td align="right">
<font size=5>用户名:</font>
</td>
<td align="left">
<input type=text name="username" size=15>
</td>
</tr>
<tr height="30%">
<td align="right">
<font size=5>密 码:</font>
</td>
<td align="left">
<input type=password name="userpasswd" size=15>
</td>
</tr>
<tr height="30%">
<td height="28" align="right">
<br>
<input type="submit" value="确定">
</td>
<td align="left">
<br>
<input type="reset" value="重置">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr height="10%">
<td>
<table width="100%">
<tbody>
<tr>
<td align="right">
<font size=5>访客请点击这里<a href="register.jsp"><b>登记</b></a></font>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
login.java
package login;import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import web.*;
public class Login extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException
{
DBConnect con = new DBConnect();
HttpSession session = request.getSession();
String username = (String)request.getParameter("username");
String userpasswd = (String)request.getParameter("userpasswd");
int role = Integer.parseInt(request.getParameter("role"));
String sql;
ResultSet rs;
int id, quality; sql = "select * from userinfo where username = '" + username + "' and userpassword = '" + userpasswd + "' and role = " + role;
try{
rs = con.executeQuery(sql);
if(rs.next())
{
if(role == 0)
{
session.setAttribute("userid",String.valueOf(rs.getInt(1)));
response.sendRedirect("../manager.jsp");
}
else if(role == 1)
{
session.setAttribute("userid",String.valueOf(rs.getInt(1)));
response.sendRedirect("../customer.jsp");
}
else if(role==2)
{
session.setAttribute("userid",String.valueOf(rs.getInt(1)));
response.sendRedirect("../staff.jsp");
}
}
else
{
response.sendRedirect("../login_error.htm");
}
rs.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doPost(request,response);
}
}在里面对提交的数据进行判断用户所属类型,怎么应用这个servlet,我感觉自己弄错了 无法对密码进行判断就跳转到Manager.jsp去了
高手教下我怎么做?
<%@ page contentType="text/html;charset=gb2312"%><script language="JavaScript">
function checkform(form) {
if(form.username.value==""||form.userpasswd.value==""){
alert("用户名或密码为空!");
return false;
}
return true;
}
</script><html>
<head>
<title>欢迎光临</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br><br><br><br><br>
<body>
<form method=post action="manager.jsp" onSubmit="return checkform(this)">
<table width=500 border=0 height=300 align=center cellspacing=0 cellpadding=0 bgcolor=ffcc00>
<tbody>
<tr height="20%">
<td align="center">
<br><br>
<font size=6><b>物业管理系统</b></font>
</td>
</tr>
<tr height="70%">
<td>
<table width="100%">
<tbody>
<tr height="30%">
<td width="49%" align="right">
<font size=5>角 色:</font>
</td>
<td width="51%" align="left">
<select name="role">
<option value="0">管理员</option>
<option value="1">住户</option>
<option value="2">员工</option>
</select>
</td>
</tr>
<tr height="30%">
<td align="right">
<font size=5>用户名:</font>
</td>
<td align="left">
<input type=text name="username" size=15>
</td>
</tr>
<tr height="30%">
<td align="right">
<font size=5>密 码:</font>
</td>
<td align="left">
<input type=password name="userpasswd" size=15>
</td>
</tr>
<tr height="30%">
<td height="28" align="right">
<br>
<input type="submit" value="确定">
</td>
<td align="left">
<br>
<input type="reset" value="重置">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr height="10%">
<td>
<table width="100%">
<tbody>
<tr>
<td align="right">
<font size=5>访客请点击这里<a href="register.jsp"><b>登记</b></a></font>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
login.java
package login;import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import web.*;
public class Login extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException
{
DBConnect con = new DBConnect();
HttpSession session = request.getSession();
String username = (String)request.getParameter("username");
String userpasswd = (String)request.getParameter("userpasswd");
int role = Integer.parseInt(request.getParameter("role"));
String sql;
ResultSet rs;
int id, quality; sql = "select * from userinfo where username = '" + username + "' and userpassword = '" + userpasswd + "' and role = " + role;
try{
rs = con.executeQuery(sql);
if(rs.next())
{
if(role == 0)
{
session.setAttribute("userid",String.valueOf(rs.getInt(1)));
response.sendRedirect("../manager.jsp");
}
else if(role == 1)
{
session.setAttribute("userid",String.valueOf(rs.getInt(1)));
response.sendRedirect("../customer.jsp");
}
else if(role==2)
{
session.setAttribute("userid",String.valueOf(rs.getInt(1)));
response.sendRedirect("../staff.jsp");
}
}
else
{
response.sendRedirect("../login_error.htm");
}
rs.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doPost(request,response);
}
}在里面对提交的数据进行判断用户所属类型,怎么应用这个servlet,我感觉自己弄错了 无法对密码进行判断就跳转到Manager.jsp去了
高手教下我怎么做?
这个地方错了!
action 应该对应你 servlet 在web.xml文件中映射的名字!
比如login.do!
你的 容器 会通过action中的值先去 web.xml 中着对应的servlet的路径
然后再去找到servlet,最后执行servlet中的doPost方法!
LZ 分给我啊!
我猜你想用的逻辑应该是登陆的jsp到这个servlet,servlet判断之后再去对应的页面。我想更好的方法是用过滤器,专门写个用户登陆情况过滤器。我也才入门,希望看到更好的答案,学习中。
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>login.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/servlet/login</url-pattern>
</servlet-mapping>
我这个写个有问题吗?
<servlet-name> login </servlet-name>
<servlet-class> login.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> login </servlet-name>
<url-pattern> *.view </url-pattern>
</servlet-mapping>这样你在jsp上只要action的值后缀是.view
就都会向login类发出请求了!login.Login路径要对哈
<form method=post action=" /servlet/login " onSubmit="return checkform(this)">
再将web.xml改为 <servlet>
<servlet-name> login </servlet-name>
<servlet-class> login.Login </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> login </servlet-name>
<url-pattern> *.view </url-pattern>
</servlet-mapping> ?
比如login.view或者 loginout.view
这些请求都会发到servlet-class制定的servlet中去处理