Servlet学习笔记(使用IDE开发Servlet)

来源:互联网 发布:凶宅美人头 知乎 编辑:程序博客网 时间:2024/05/17 03:32

开发步骤

例子:使用eclipse或者Myeclipse开发一个servlet,实现访问servlet显示hello,并显示当前时间。
(1)建立web工程(Dynamic Web Project:动态网页项目)
这里写图片描述
(2)建立的同时在src目录下新建一个包,这里我建的是com.cn
这里写图片描述
(3)之后在包的目录下建立Servlet,这里我建的是Test1
这里写图片描述
这里写图片描述
这一步一般勾选doGet()和doPost()即可,之后写的也是实现这两个方法的内容。
最后点击finish完成Servlet的创建,而eclipse会根据你创建的Servlet在WebContent/WEB-INF/web.xml文件中自动生成内容。
内容如下:

<?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" id="WebApp_ID" version="2.5">  <display-name>MyServlet1</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>  <servlet>    <description></description>    <display-name>Test1</display-name>    <servlet-name>Test1</servlet-name>    <servlet-class>com.cn.Test1</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>Test1</servlet-name>    <url-pattern>/Test1</url-pattern>  </servlet-mapping></web-app>

可以根据需要修改映射信息来控制跳转的页面以及Servlet。

实现例子功能的Servlet的代码如下:
Test1.java:

package com.cn;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class Test1 */public class Test1 extends HttpServlet {    private static final long serialVersionUID = 1L;    /**     * @see HttpServlet#HttpServlet()     */    public Test1() {        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        response.setContentType("text/html");        PrintWriter out=response.getWriter();        out.println("test servlet:"+new java.util.Date().toString());    }    /**     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)     */    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        doGet(request, response);//表示将post方式提交的请求交给doGet()处理。    }}

完成代码的编写后,发布项目前需要完成tomcat服务器的配置:
步骤如下:(这里我用的是eclipse+tomcat6.0)
(1)如果底部的控制台那部分窗口中没有servers这一项可以到window->show view->servers中选择添加。之后右键添加一个新的server,根据个人需要更改server的名称。
这里写图片描述
这里需要注意的是,tomcat和Project所使用的jdk是相同版本的,不然会出错。具体的配置方法eclipse和myeclipse不同,可以上网自行查阅资料,我自己碰到的一个问题就是我用eclipse编写servlet的时候,建立servlet的时候发现引包比如import java.以及import javax. 的一类包都报错了= =。

之前用myecilipse都没什么问题,后来到晚上一查发现是tomcat的问题,原因是我用的是tomcat8.0.然后一堆什么的。

也有人说可以在build path中将 servlet-api.jar 导入即可。(servlet-api.jar在tomcat中的lib目录下),这个我没试过,我是直接使用了解压版的tomcat6.0之后直接解决问题。- -

环境OK了之后,右键建立的server,添加刚刚建立的Project。运行Servet,tomcat会将程序复制一份到tomcat中的webapp中,里面生成的是.class文件(原因是tomcat认为你的.java文件是私有的- -!)

server启动成功之后,通过http://localhost:8080/MyServlet1/Test 访问servlet。成功后如下所示:

这里写图片描述
因为我的映射是这样的:

 <servlet-mapping>    <servlet-name>Test1</servlet-name>    <url-pattern>/Test1</url-pattern>  </servlet-mapping>

所以能通过http://localhost:8080/MyServlet1/Test1来访问。
具体的Servlet细节在另外一部分继续记录。。。

0 0
原创粉丝点击