现在虽然大多都使用框架,封装了servlet类,比如ssh中的Action类,ssm中的Controller类,但是底层的东西还是要知道的:
1.servlet一般的请求过程:
1)前端jsp中点击url—–>
2)web.xml中servlet拦截器,例如:
<servlet>
<servlet-name>test1</servlet-name>
<servlet-class>com.appear.myage.servlet.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test1</servlet-name>
<url-pattern>/test1</url-pattern>
</servlet-mapping>
3)这表示url为”test1”的链接将跳转至com.appear.myage.servlet.TestServlet类下进行处理,当然TestServlet就是一个servlet类了,如下:
package com.appear.myage.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.appear.myage.entity.Student;
import com.appear.myage.untils.HtmlUtils;
/**
* Servlet implementation class TestServlet
*/
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student student = new Student("张三",15,true);
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "张飞");
map.put("stu", student);
HtmlUtils.jsonToHtml(response, map);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
根据请求类型(get或post)的不同,将执行servlet类中的不同方法(doGet或doPost).执行相关的方法后,根据需求可以使用重定向或请求转发跳转至指定页面.
如果使用ajax请求的话可以返回数据到请求页面,本例就是使用的ajax请求,详细请阅读http://blog.csdn.net/lee_0220/article/details/52790577