1. 使用IDE编写、运行一个简单的Servlet。
【步骤1】在IDE下建立一个Web Project,命名为helloapp,context路径也命名为helloapp,观察该Web项目的目录结构。
【步骤2】在该项目的com.demo路径下,使用Servlet模板编写一个简单的Servlet类helloServlet.java,输出一个HTML页面,页面上显示一个一行两列的表格。在WEB-INF目录下的web.xml的文件中,查看并修改该Servlet的部署信息,具体内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>helloServlet</servlet-name><servlet-class>com.demo.helloServlet</servlet-class></servlet><servlet-mapping><servlet-name>helloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping><servlet><servlet-name>ShowTimeServlet</servlet-name><servlet-class>com.demo.ShowTimeServlet</servlet-class></servlet><servlet-mapping><servlet-name>ShowTimeServlet</servlet-name><url-pattern>/show</url-pattern></servlet-mapping>
</web-app>
【步骤3】在IDE中运行该Servlet,并查看运行结果,体会Servlet的编写、编译、部署和运行过程。
package com.demo;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 java.io.IOException;
import java.io.PrintWriter;@WebServlet(name = "helloServlet")
public class helloServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置网页响应类型response.setContentType("text/html");//实现具体操作PrintWriter out = response.getWriter();out.println("<table align=\"center\" border=\"1px\"><tr><td>(1,1)</td><td>(1,2)</td></tr></table>");}
}
2. 显示系统当前时间
使用IDE在helloapp项目下,使用Servlet模板编写一个ShowTimeServlet.java显示系统当前时间,在web.xml中部署该Servlet,在MyEclipse下测试该Servlet的运行结果。
package com.demo;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 java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;@WebServlet(name = "ShowTimeServlet")
public class ShowTimeServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();Date nowDate = new Date(System.currentTimeMillis());SimpleDateFormat time = new SimpleDateFormat("yyyy年MM月dd日-HH时mm分ss秒");out.print("当前系统时间为:"+ time.format(nowDate));}public void destroy() {super.destroy();}
}
3. 一个1到100求和并输出计算结果
使用MyEclipse在helloapp项目下,编写一个1到100求和并输出计算结果的JSP文件 hellosum.jsp,在MyEclipse下测试该JSP页面的运行结果。
<%--Created by IntelliJ IDEA.User: 28187Date: 2019/4/1Time: 10:10To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>求和</title><script>var num = 0;for(var i=1; i<=100; i++) {num += i;}document.write("1~100的求和结果为:"+num);</script>
</head>
<body></body>
</html>
4. 使用IDE在helloapp项目下,编写一个JSP页面square.jsp
其运行结果如下所示:
<%--Created by IntelliJ IDEA.User: 28187Date: 2019/4/1Time: 10:16To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>表格</title><script>var col = 2;var rol = 10;</script>
</head>
<body><%int col = 10;%><!--循环输出表格--><table border="1px" align="center"><tr><%for(int i=0;i<col;i++){%><td><%=i%></td><%}%></tr><tr><%for(int i=0;i<col;i++){%><td><%=i*i%></td><%}%></tr></table></body>
</html>
总结
1. 什么是Servlet及Servlet容器,它的主要作用是什么?
Servlet是用servlet API 开发的java程序,它运行在Servlet容器中。Servlet容器是运行servlet的软件,主要用来扩展web服务器的功能。
2. Web应用程序的部署描述文件名是什么?它是什么类型?应存放在哪?
部署文件名叫web.xml,是XML文件,应放在/WEB-INF目录下。
3. 对比说明Servlet与JSP各自的特点。
servlet是在java里嵌套html,jsp是在html里面嵌套java,jsp需要先编译成servlet才能执行。
jsp最终翻译成servlet执行,jsp容易上手和编写而servlet需要自己手动编译,很麻烦的。
servlet现在更多是充当MVC模型控制器的角色,由它根据客户的请求,来动态组织返回数据或页面的重定向,而JSP只做显示(MVC模型,显示控制模型 显示:jsp 控制:servlet)。
Therefore: JSP做显示更适合,SERVLET做控制更好。