区别辨析
和tomcat区别(考点)
Tomcat: 是Servlet的容器,Servlet运行在Tomcat容器当中
Serlvet: 是用Java编写的服务器端程序 (中间件)
Servlet与JSP的区别(考点)
- JSP实际上是从Servlet继承而来,它在Servlet当中又添加/修改了一些方法
- JSP是Servlet的一个成功应用,是其子集
- 角色不同:JSP页面可以存在HTML代码与Java代码并存的情况,而Servlet只有调用固定的方法才能将动态内容输出为静态HTML,所以JSP更具有显示层的特色
- 编程方法不同:Servlet开发Web需要遵循Java的标准,JSP需要遵循一定的脚本语言规范
- Servlet需要编译后运行:Servlet需要在Java编译器编译后才能运行,
- 速度不同:JSP效率低于Servlet
servlet代码结构
package com.Lesson8.MyServlet;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class Hello extends HttpServlet {// 初始化方法public void init() throws ServletException {}// 处理HTTP Get请求public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=GB2312");// 设置响应的MIME类型PrintWriter out = response.getWriter();// 获得一个向客户发送数据的输出流out.println("<html><body>");out.println("<h2>这是我的第一个servlet。</h2>");out.println("</body></html>");}// 处理HTTP Post请求public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}// 处理HTTP Put请求public void doPut(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}// 处理HTTP Delete请求public void doDelete(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}// 销毁方法public void destroy() {super.destroy();}}
servlet配置(考点)
<servlet>
<!-- 配置Servlet名称,名称必须唯一 -->
<servlet-name>ServletDemo</servlet-name>
<!-- 配置Servlet完全路径(包名+类名) -->
<servlet-class>cn.itcast.servlet.ServletDemo</servlet-class>
</servlet>
<!-- 配置Servlet映射(访问路径) -->
<servlet-mapping>
<!-- 配置Servlet名称,必须和上面的相同 -->
<servlet-name>ServletDemo</servlet-name>
<!-- 配置虚拟路径(访问路径) -->
<url-pattern>/demo</url-pattern>
</servlet-mapping>

实例(记忆)
public class RegServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置response的编码(必写)
response.setContentType("text/html;charset=utf-8");
// 设置request的编码以及获取用户名
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
// 获取PrintWriter
PrintWriter out = response.getWriter();
// 输出用户名
out.println("用户名:" + name + "<br>");
out.flush();
out.close();
}
}
Servlet内部方法
重定向与转发(考点)
重定向
HttpServletResponse类中通过方法sendRedirect(java.lang.String location) 可实现页面的跳转
格式:response.sendRedirect (“xxx.jsp”);
该方法跳转后的页面,不能获得之前页面用户提交的数据
转发
RequestDispatcher对象可以把用户对当前的JSP页面或servlet的请求转发给另一个JSP页面或servlet,并且将请求对象和相应对象传递给目标页面
格式:
第一步:得到RequestDispatcher对象:
RequestDispatcher rd = request.getRequestDispatcher(“xxx.jsp”);
第二步:转发:rd.forward( request, response);
使用Session
HttpSession session = request.getSession(true);
随后即可用jsp中的session方法。
