servlet开发、访问步骤及错误分析

来源:互联网 发布:知乎广州it培训机构 编辑:程序博客网 时间:2024/06/10 14:38


Servlet特征(*)

  • 存储在服务器上
  • 必须满足Sun的规范
  • 动态拼资源(网页、图片等)

术语:处理HTTP协议

什么是Servlet

  • Sun推出的用于在服务器端处理HTTP协议的组件

组件:满足规范的对象

服务器

  • Tomcat(Apache)
  • JBOSS
  • WebLogic
  • WebSphere

五.Servlet开发步骤

1.创建WEB项目

  • WEB项目须具备标准的目录结构
  • /WEB-INF/web.xml

2.导入jar包

1)通过maven搜索

  • 搜索javaee
  • 在结果中选择javaee-api下面的5.jar

2)导入Tomcat自带的包

  • 右键点击项目->properties->targeted runtimes
  • 勾选Apache Tomcat
  • 点击Apply

3.开发Servlet

  • 创建XxxServlet
  • 继承于HttpServlet(间接实现Servlet接口)
  • 重写service()

4.配置Servlet

  • 给Servlet取一个别名
  • 通过别名引用Servlet,给它取一个网络访问路径(网名)

5.部署(拷贝)

  • 在Servers下选择tomcat
  • 右键点击Add and Remove
  • 窗口内将项目从左侧移动到右侧
  • 启动tomcat

修改代码后,需要右键点击publish以重新部署


六.程序运行过程及相关错误


代码如下:

浏览器访问路径--http://localhost:8080/servlet1/ts

package web;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Enumeration;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TimeServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req,    HttpServletResponse res) throws ServletException, IOException {//1.使用request获取请求数据//请求行System.out.println("请求方式:"+req.getMethod());System.out.println("访问路径:"+req.getServletPath());System.out.println("协议类型:"+req.getProtocol());//消息头(键值对)Enumeration是一个老版本的迭代器//遍历keyEnumeration<String> e = req.getHeaderNames();while(e.hasMoreElements()){String key = e.nextElement();String value = req.getHeader(key);System.out.println(key+":"+value);}//实体内容//本案例没有传递具体的业务数据,所以实体内容为空,以后再演示//2.使用response获取响应数据//状态行--由服务器自动填充,但返回内容的格式需要指定("text/html")//声明服务器向浏览器发送的内容是什么类型(此处为网页)//如果格式"text/html"写错,浏览器无法识别,只能让你保存这个文件res.setContentType("text/html");PrintWriter out = res.getWriter();Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");String now = sdf.format(date);//实体内容(输出的网页就是具体的内容)//此处省略了网页的基础结构out.println("<p>"+now+"</p>");out.close();}/*** * 注意事项:使用servlet时必须实现Servlet接口,由于该接口含有多个抽象方法,为了方便使用 *    继承HttpServlet抽象类,重写service方法即可,HttpServlet实现了Servlet接口 * protected void service(HttpServletRequest req, *           HttpServletResponse res) throws ServletException, IOException {}参数详解:Servlet  接口    HttpServlet  抽象类      HttpServletRequest(接口)   extends  ServletRequest(接口)      HttpServletResponse(接口)  extends  ServletResponse(接口) */}


配置文件:

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <display-name>servlet1</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>    <!--1.声明Servlet的类型,并取别名(小名)  -->  <servlet>    <servlet-name>time</servlet-name>    <servlet-class>web.TimeServlet</servlet-class>  </servlet>    <!-- 2.通过别名引用Servlet,并给他娶一个网名(访问路径) -->  <servlet-mapping>    <servlet-name>time</servlet-name>    <url-pattern>/ts</url-pattern><!-- 网名需以"/"开头 -->  </servlet-mapping></web-app>


0 0
原创粉丝点击