了解servlet
静态页页即只包含了HTML文档的内容,与用户并没有任何交互。动态网页不仅可以动态显示数据,还可以与用户做交互。如完成登录,注册等一系列动作。不同用户访问相同的网页时,经常会发现所显示的内容是不相同的,这样的网页就是经过服务器动态生成的。servlet就是一种动态网页技术,
区 别:
servlet:单例,不安全,性能是好,处理HTTP请求的标准,只处理doPost(),doGet()方法。
springMVC:单列,不安全,开发效率高(好多共性的东西都封装好了,是对servlet的封装,核心的DispatcherServlet最终继承自HttpServlet),DispatcherServlet又叫前端控制器,能过滤处理所有的请求方法,还能查询HandlerMapping查找到相应的handler,进而调用相应的service和Dao,两者的关系如果MyBatis和JDBC,一个性能好,一个开发高效率高,是对另一个封装。
创建一个Maven项目
在Eclipse里面创建,FILE—NEW—Other—弹出的对话中选Maven—MavenProject-
第二步:单击next
第三步:因为Eclipse没有自动创建项目需要的web.xml配置文件,可以复制或可以创建此文件,在每个项目下面都有一个DeploymentDescriptor:项目名称这件目录,在此上面右键----选择Generate Deployment Descriptor选项,会自动创建项目需要的web.xml文件。。
上面创建完项目后下面进行配置
使用Maven导入Servlet的jar包,在pom.xml中添加依赖。
<dependencies>
<!--servlet-->
<dependency>
<groupID>javax.servlet</groupID>
<artifacId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
123456789
配置请求路径,路径配置即指浏览器请求到达Web容器,并指定处理该请求的Servlet类,需要web.xml中以标签的形式进行配置,完成的标签包括servlet标签和servlet-mapping标签,servlet标签中的servlet-name标签表示对servlet进行命名,在整个WEB容器中该值是唯一的,servlet-class标签需要填写完整的类路径。servlet-mapping是请求映射标签,表示HTTP请求与servlet类的对应关系,对应关系通过两者都有的servlet-name的 值进行关 联。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>cn.itcast.bookstore.user.web.servlet.UserServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>CategoryServlet</servlet-name>
<servlet-class>cn.itcast.bookstore.category.web.servlet.CategoryServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BookServlet</servlet-name>
<servlet-class>cn.itcast.bookstore.book.web.servlet.BookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CategoryServlet</servlet-name>
<url-pattern>/CategoryServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BookServlet</servlet-name>
<url-pattern>/BookServlet</url-pattern>
</servlet-mapping>
</web-app>
1234567891011121314151617181920212223242526272829
编写servlet,
public class HelloServlet extends HttpServlet{
@Override
/**
* 重写service方法
*/
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// //配置UTF-8字符集以支持中文
// response.setContentType("text/html;charst=utf-8");
// response.setCharacterEncoding("UTF-8");
// //获取输出流以输出数据到浏览器中
// PrintWriter pw = response.getWriter();
// pw.write("我是Servlet服务端发送给浏览器的数据:Hello Servlet!");
// pw.close();
response.setContentType("text/html;charst=utf-8");
response.setCharacterEncoding("utf-8");
String name = "张三";
int age = 16;
PrintWriter pw = response.getWriter();
pw.write("<p style='color:red'>你好,我叫"+name+",今年"+age+"岁!<p>");
pw.close();
}
}