Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序。
在web项目中创建Servlet的步骤如下:
1.在web项目src目录下的包上点右键,选择new->Servlet。
2. 编写Servlet类名,确定对应的方法:
第三步,配置Servlet。
第四步:在4个方法中编写输出语句。
public class HelloServlet extends HttpServlet {
public void destroy() {
System.out.println("啊,要死了要死了...");
super.destroy(); // Just puts "destroy" string in log
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("通过URL访问的...");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("通过form提交访问的...");
}
public void init() throws ServletException {
System.out.println("初始化...");
}
}
第五步:运行看效果。
在地址栏输入:http://127.0.0.1:8080/webktv/servlet/HelloServlet,控制台显示效果如下。
关闭服务器后的显示效果。
案例:通过Servlet的方式来实现登录功能。实现步骤如下:
1. 创建login.jsp页面和result.jsp页面
2. 创建ValiLoginservlet用于验证登录信息,登录成功跳转到result.jsp页面,否则跳回login.jsp页面。
login.jsp代码如下:
<body>
<form action="vl" method="post">
<label>账号:</label>
<input type="text" id="loginID" name="loginID" /><br />
<label>密码:</label>
<input type="password" id="loginPWD" name="loginPWD" /><br />
<input type="submit" value="登录" />
</form>
<p style="color:red;">${err }</p>
</body>
创建Serlvet,代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1. 得到页面传递的登录数据
UserService userService = new UserService();
User user = new User();
user.setLoginID(request.getParameter("loginID"));
user.setLoginPWD(request.getParameter("loginPWD"));
//2. 验证登录信息
HttpSession session = request.getSession(); //得到Session对象
if(userService.login(user)==1){ //没有数据库的小伙伴可以直接比较固定值:user.getLoginID.equals("wuhan")
session.setAttribute("result", "登录成功!");
response.sendRedirect("result.jsp");
}
else{
session.setAttribute("err", "账号或密码错误!");
response.sendRedirect("login.jsp");
}
}
web.xml文件配置如下:
<servlet>
<servlet-name>ValiLogin</servlet-name>
<servlet-class>com.pxy.servlet.ValiLoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ValiLogin</servlet-name>
<url-pattern>/vl</url-pattern>
</servlet-mapping>
result.jsp文件代码如下:
<body>
${result }
</body>
运行结果就不再截图,Servlet最大的作用就是把以前写在JSP页面上的代码放到单独的类中,让页面显示代码和页面数据操作分开。