以前刚学习java三大框架(Struts2+Hibernate+Spring)的时候,还没有学习过Servlet,只粗略学过一点JSP,对于WEB的许多原理性的概念还不是很了解,但仍硬着头皮学,结果在那一个学期期末时,用三大框架做了一个学生管理系统,虽然运行的时候出现许多错误,但仍然因为对struts2+hibernate+spring有初步的了解和运用感觉满足。
随着学习的深入,总觉得没有办法更深层次地学习框架,后来在网上看到有人说,学习框架要以JSP和Servlet为基础,才发现原来自己的基础根本不扎实,于是重新学过JSP和Servlet
现在,对JSP和servlet,不敢说学得很深入,但基础的概念和原理还是有一定的认识,因此,在这里进行一下总结.
servlet是什么?
servlet是运行在web应用服务器的一个小程序,用于响应客户端的请求。
JSP是什么?
jsp是一种动态网页技术,我们可以直接在jsp页面的html标签中嵌入java程序片断,当客户端向服务发送请求,jsp将响应客户端的请求。
Servlet与JSP的区别?
许多初学者在学习jsp和servlet的时候,可能会认为这是两种完全独立的技术,有人的会说jsp与html一样,用生成响应页面,而servlet用于进行后逻辑处理,这种说法是错误的,servlet与jsp是一样,是同一样技术的两个不同的表现,一体两面,当我们请求服务器的jsp页面时,服务器会将jsp页面编译为servlet进行响应,所以说,jsp最终将化为servlet。
JSP与Servlet使用场合
现在WEB开发模式为MVC模式,MVC的思想是分层:M(Model)、V(View)、C(Controller),分层思想使用网站容易扩展与维护,各层各司其职,JSP在MVC模式中一般充当View层,即表现层,Servlet用于接收用户请求,属于Controller层,即控制层。
Servlet示例代码
package org.servlet.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServlet
*/
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
JSP的示例代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>