用户名:<input type="text" name="username"/><br/>
密  码:<input type="text" name="pass"/><br/>
<input type="submit" value="登录"/>
</form>
简单的jsp页面,action功能对应的xml中/login 同时xml里面需要定义俩个 如下
<servlet>
<!-- 指定Servlet的名字,
相当于指定@WebServlet的name属性 -->
<servlet-name>login</servlet-name>
<!-- 指定Servlet的实现类 -->
<servlet-class>lee.LoginServlet</servlet-class>
</servlet>
<!-- 配置Servlet的URL -->
<servlet-mapping>
<!-- 指定Servlet的名字 -->
<servlet-name>login</servlet-name>
<!-- 指定Servlet映射的URL地址,
相当于指定@WebServlet的urlPatterns属性-->
<url-pattern>/login</url-pattern>
</servlet-mapping>
然后LoginServlet类取得相关数据。代码如下
package lee;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.sql.*;
/**
* Description:
* <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
* <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
@WebServlet(name="login"
, urlPatterns={"/login"})
public class LoginServlet extends HttpServlet
{
//响应客户端请求的方法
@Override
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,java.io.IOException
{
String errMsg = "";
//Servlet本身并不输出响应到客户端,因此必须将请求转发
RequestDispatcher rd;
request.setCharacterEncoding("gb2312");
//获取请求参数
String username = request.getParameter("username");
//String username = new String(username1.getBytes("iso8859-1"),"gbk");
String pass = request.getParameter("pass");
try
{
//Servlet本身,并不执行任何的业务逻辑处理,它调用JavaBean处理用户请求
DbDao dd = new DbDao("com.mysql.jdbc.Driver",
"jdbc:mysql://localhost:3306/javaee","root","root");
//查询结果集
ResultSet rs = dd.query("select passwd from user_table "
+ "where username = ?", username);
if (rs.next())
{
//用户名和密码匹配
if (rs.getString("passwd").equals(pass))
{
//获取session对象
HttpSession session = request.getSession(true);
//设置session属性,跟踪用户会话状态
session.setAttribute("username" , username);
//获取转发对象
rd = request.getRequestDispatcher("/welcome.jsp");
//转发请求
rd.forward(request,response);
}
else
{
//用户名和密码不匹配时
errMsg += "您的用户名密码不符合,请重新输入";
}
}
else
{
//用户名不存在时
errMsg += "您的用户名不存在,请先注册";
}
}
catch (Exception e)
{
e.printStackTrace();
}
//如果出错,转发到重新登录
if (errMsg != null && !errMsg.equals(""))
{
rd = request.getRequestDispatcher("/login.jsp");
request.setAttribute("err" , errMsg);
rd.forward(request,response);
}
}
}
数据库匹配成功后,跳入welcome.jsp页面。
如此完成servlet功能。