博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2EE(五)——servlet初识
阅读量:4499 次
发布时间:2019-06-08

本文共 2194 字,大约阅读时间需要 7 分钟。

一、Tomcat的三个功能:

1.jsp容器

2.Servlet容器

3.Web服务器

二、手动开发第一个servlet

开发servlet三种方式:

1.实现servlet接口

2.继承GenericServlet

3.继承HttpServlet

1.tomcatweb apps下新建一个文件夹(myWeb),这个项目里面增加含web.xmlWEB-INF并在WEB-INF下增加classes以及lib.classes下编写MyFirstServlet.java:

package myz;

import java.io.IOException;

import java.util.Date;

 

import javax.servlet.Servlet;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

 

 

public class MyFirstServlet implements Servlet{

//销毁servlet,只会被调用一次

public void destroy() {

// TODO Auto-generated method stub

 

}

 

public ServletConfig getServletConfig() {

// TODO Auto-generated method stub

return null;

}

 

public String getServletInfo() {

// TODO Auto-generated method stub

return null;

}

//初始化Servlet,Servlet加载到内存中去,该函数只会被调用一次

public void init(ServletConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

 

public void service(ServletRequest arg0, ServletResponse arg1)

throws ServletException, IOException {

// TODO Auto-generated method stub

System.out.println("service方法正在执行...");

System.out.println(new Date());

}

 

}

用提示命令符定位到该目录下后,使用javac -d . MyFirstServlet.java命令编译(-d表示 编译的东西需要打包package myz;,  . 表示在当前目录下)

Ps:如果报错servlet等包找不到,则需要解压TomCat\apache-tomcat-8.5.14\lib下的servlet-api.jar,并配置需要用户变量CLASSPATHtomcatlib目录(或者为lib目录下的servlet-api.jar),

2.部署web应用到刚才的web.xml:

<servlet>

     <servlet-name>MyFirstServlet</servlet-name>

    <servlet-class>myz.MyFirstServlet</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>MyFirstServlet</servlet-name>

    <url-pattern>/ABC</url-pattern>

</servlet-mapping>

 

servlet-name配置的是以后浏览器访问时的资源名称,该名字可以自己定义,但一般与servlet名字相同

servlet-class必须指明该servlet放的位置(包名.servlet)

Mapping做的是servlet的映射

Mapping下的servlet-name必须与上面servlet-name的一样

url-pattern上配置的名字是ABC使得我以后访问地址为

 

访问顺序为,先根据url-pattern找到mapping下的servlet-name,然后根据得到的servlet-name得到servlet-class加载对应的servlet.

 

3.此时访问,控制台会输出service方法正在执行...和当前时间

 

 

4.如果想在网页输出同样的信息,service方法中,添加

arg1.setCharacterEncoding("utf-8");

arg1.getWriter().write("service方法正在执行..."+new Date());

即可(其中arg1ServletResponse传参对象).

因为,write的内容含有中文,所以需要在service方法中和浏览器中设置编码格式为utf-8.

 

转载于:https://www.cnblogs.com/myz666/p/6822778.html

你可能感兴趣的文章
解决IOS safari下滑动的“橡皮筋”效果
查看>>
asp.net 得到一个文件夹下的所有文件夹及子文件夹名,得到所有文件名,文件大小,文件夹大小...
查看>>
从keystore(jks)文件中提取私钥
查看>>
调整数组顺序使奇数位于偶数前面
查看>>
css3的3D和2D
查看>>
简单的响应式布局的实现
查看>>
jQuery(属性操作)
查看>>
Python之路【第九篇】:Python面向对象
查看>>
background和background-image一点小区别
查看>>
ASCII码对照表
查看>>
HackerRank "Training the army" - Max Flow
查看>>
jquery next()方法
查看>>
深入剖析js命名空间函数namespace
查看>>
SQLHelper
查看>>
用标准Struts2+mvc写的用户管理
查看>>
Cocos2d-x 3.0 编译出错 解决 error: expected &#39;;&#39; at end of member declaration
查看>>
Ubuntu12.04下载Repo
查看>>
python基础教程_学习笔记10:异常
查看>>
MATLAB——scatter的简单应用
查看>>
linux下复制粘贴快捷键
查看>>