我对Servlet的理解-创新互联
Servlet是java web中的动态资源,是三大组件(Servlet,Filter,Listener)之一,用于处理客户端的请求,并作出相应,具体用法为:
在义县等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、做网站 网站设计制作按需网站策划,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸营销网站建设,义县网站建设费用合理。一,实现Servlet的三种方式:
1.实现javax.servlet.Servlet接口
public class ServletOne implements Servlet{
public void destroy(){}
public ServletConfig getServletConfig(){}
public String getServletInfo(){}
public void init(ServletConfig arg0) throws ServletException {}
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {}
}
(1).init()方法在Servlet创建时被调用
(2).destroy()方法在Servlet销毁时创建
(3).service()方法每请求一次servelt调用一次
2.继承javax.servlet.GenericServlet,并重写其所有的抽象方法
public class ServletTwo extends GenericServlet{
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {}
}
3.继承javax.servlet.http.HttpServlet
public class ServletFour extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}
(1).doGet()处理get请求
(2).doPost()处理post请求
注:用此方法实现的Servlet只能处理http协议的请求
二,配置Servlet
通过以上方式定义好了一个Servlet,但此时的Servlet还不能处理客户端请求,因为没有给此Servlet指定处理来自客户端的那个请求,因此要把此Servlet配置成能处理客户端请求的Servlet。在WebContent/WEB-INF/web.xml中配置如下:
一个
也可以在
那么就会出现一个地址同时匹配一个精确的
三,域对象
域对象是指在一定作用域被共享的对象,在Servlet中有四大域对象:ServletContext,HttpSession,ServletRequest,PageContext,注意:PageContext是jsp的九大内置对象之一,因为jsp是一个特殊的Servlet,故这里将PageContext也算在内。域对象通用的操作属性的方法为:
void setAttribute(String name,Object obj) 网域对象中保存一个属性
Object getAttribute(String name) 从域对象中获取一个属性值
void removeAttribute(String name) 从域对象中移除一个属性
四,获取资源文件
1.获取资源的真实路径:
ServletContext context = getServletContext()
String path = context.getRealPath("/a.txt")
2.获取资源流:
InputStream in = context.getResourceAsStream("/a.txt")
注:以上参数必须以 / 开头,表示相对于项目
3.获取类路径下的资源
对于web项目来说,当把项目发布后就没有 src 这个目录,所以在拿类路径下的资源文件时,就不能用 new InputStream("") 这种方式来获取。此时src目录就相当于WebContent/WEB-INF/classes目录,可以用两种方式来获取
(1).类.getResourceAsStream(String path)
path以 / 开头表示路径相对于 classes
path不以 / 开头表示路径相对于当前类
(2).类.getClassLoader().getResourceAsStream(String path)
此时path只想对于classes
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
分享文章:我对Servlet的理解-创新互联
标题URL:http://abwzjs.com/article/jdhpp.html