package cn.jiemoxiaodi.http;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class MyHttpServlet extends GenericServlet { @Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
// 如果我们确定请求的是用http协议,那么实际上ServletRequest 就是
// HttpServletRequest 所以进行强转 HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; //当我们请求servlet的时候 ,如果他请求方式是get 那么他走一个doGet方法
//当我们请求servlet时候,如果他请求方式是post 那么他走一个doPost的方法 //获得 请求的 方式
String method= request.getMethod();
if(method.equalsIgnoreCase("get")){
doGet(request,response);
}else if(method.equalsIgnoreCase("post")){
doPost(request,response);
} } public void doPost(HttpServletRequest request, HttpServletResponse response) {
System.out.println("dopost");
} public void doGet(HttpServletRequest request, HttpServletResponse response) {
System.out.println("doget");
} }
package cn.jiemoxiaodi.http;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class DServlet extends MyHttpServlet { @Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
System.out.println("dopost----=--");
} @Override
public void doGet(HttpServletRequest request, HttpServletResponse response) {
System.out.println("doget----=--");
} }

1.关于Servlet的线程安全问题
        因为一个servlet的实例在服务器中只存在一份. ==> 当有多个请求访问时,servlet线程将不安全.

如何规避线程安全问题呢? ===>  我们接受线程的信息时,将信息保存在方法的变量中,不要使用成员变量保存.

2.关于servlet中路径配置问题

            <!--

路径配置分为两种情况

路径匹配

/DServlet   ==>  http://localhost:8080/Day10/DServlet

/ABC/DServlet  ==> http://localhost:8080/Day10/ABC/DServlet

/ABC/BCD/DServlet ==> http://localhost:8080/Day10/ABC/BCD/DServlet

/ABC/*  ==>  http://localhost:8080/Day10/ABC/asdlkajsdlkjalsd

/       ==> 匹配所有路径 http://localhost:8080/Day10/2139009123j/asd2klnasd

匹配优先级: 路径匹配中 ,匹配的范围越广,优先级越低.

后缀名匹配

*.do        ==>  http://localhost:8080/Day10/213oiajsdoijoad.do

*.action    ==>  http://localhost:8080/Day10/lnasdljasdlkasljdasd.action

*.abc        ==>   http://localhost:8080/Day10/1039i09ixc0kasd.abc

这种路径匹配在现在学习阶段接触不到. 在学到Filter 和struts2 的时候就用到了.

!!!!!!!注意: 以上两种匹配方式不能同时使用

例如下面是绝对错误的:

/DServlet/*.do  ==> 凡事路径配置中以"/"开头那么就说明含有路径匹配.这种时候再使用*.do 这种后缀名匹配绝对报错.

-->

3.(拓展)关于tomcat中web.xml的信息

        1> defaultServlet 配置的路径是 "/" ==>  所有跟我的路径匹配不上的路径都会走default.default主要干两件事  1.找静态资源  2.找不到静态资源报错.

2>session相关的配置 ==> 30  ==> 学session的时候就知道了

3>将所有MIME类型 都列举出来了.

4>welcome list file ==> 默认的欢迎资源.

4.我们知道servlet默认创建实例的时机是什么时候? ==> 第一次请求该servlet时创建. ==> 如果我们这个servlet创建需要的时间比较久.我们想让servlet随着服务器的启动而启动

那么我们可以这样做:

<servlet>

<servlet-name>AServlet</servlet-name>

<servlet-class>cn.itcast.servlet.AServlet</servlet-class>

<!-- 在启动服务器时加载的意思

配置了该配置,那么这个servlet就会在服务器启动时创建实例.

这个配置中填写的内容是整数 最小可以填0.

数字越小 启动优先级越高. 所以0 表示优先级最高.

如果两个数字大小相同,优先级按照配置顺序,谁先配置 谁先创建.

-->

<load-on-startup></load-on-startup>

</servlet>

Servlet 之 HttpServlet的更多相关文章

  1. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path解决方案

    0.环境: win7系统,Tomcat9配置无误. 1.错误: 项目中某一.jps页面忽然出现错误,鼠标点上去为:The superclass "javax.servlet.http.Htt ...

  2. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path。问题

    JSP页面顶端出现“红色”的报错信息:The superclass "javax.servlet.http.HttpServlet" was not found on the Ja ...

  3. 错误:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    我们在利用Eclipse进行Java web开发时,可能会出现这样的错误:The superclass javax.servlet.http.HttpServlet was not found on ...

  4. eclipse中 报出The type javax.servlet.http.HttpServlet cannot be resolved. It is indirect错误

    在Myeclispe部署项目后 报错 The type javax.servlet.http.HttpServlet cannot be resolved. It is indirect错误 如果在M ...

  5. Servlet简介与Servlet和HttpServlet运行的流程

    1.Servlet      [1] Servlet简介         > Server + let         > 意为:运行在服务器端的小程序.         > Ser ...

  6. ubuntu下eclipse遇到The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    JSP页面顶端出现“红色”的报错信息:The superclass "javax.servlet.http.HttpServlet" was not found on the Ja ...

  7. 项目忽然出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方法

    0.环境: 新装win8.1系统,Tomcat配置无误. 1.错误: 项目中某一.jps页面忽然出现错误,鼠标点上去为:The superclass "javax.servlet.http. ...

  8. JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    建立了一个Javaweb工程,并在eclipse中配置了Web容器Tomcat.新建的jsp页面,添加一个简单的Java类.可是,JSP页面顶端出现“红色”的报错信息:The superclass & ...

  9. eclipse中web工程新建jsp文件报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    web工程中新建jsp文件提示:The superclass "javax.servlet.http.HttpServlet" was not found on the Java ...

  10. java开发eclipse常见问题(一)The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    最近刚开始用Eclipse开发,刚开始都是按教程一步一步的新建web工程也没出现什么问题. 今天选了一个新的workspace,建了个web工程发现最简单的jsp页面都报错:The superclas ...

随机推荐

  1. sql server 使用nolock提升性能

    博客园有许多关于nolock的文章,大部分都写得很好,例如:http://www.cnblogs.com/huangxincheng/p/4292320.html 这里仅结合个人项目,作为个人笔记记录 ...

  2. JS组件系列——Bootstrap寒冬暖身篇:弹出框和提示框效果以及代码展示

    前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑.在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的 ...

  3. 如何让tableViewCell的分割线从边框顶端开始

    在ios8上 [TableView setSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];不起作用 经过测试加入下面方法 在ios7 8上都可以正常工作 -(voi ...

  4. struts2+spring+hibernate(SSH)框架的搭建和总结

    SSH框架:struts2+spring+hibernate,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. struts2+spring+hibernat ...

  5. Maven 配置使用小技巧

    Spark开发中遇到了一些小问题,都是大神随便一个手指头帮我解决的.保持学习,积累吧! 一. 基于Intellij IDEA编辑器 1. 快捷键 注释/去注释   Ctrl+Shift+? 2. re ...

  6. Asynchronous fs.stat.isDirectory()

    function showFile() { for(var i = 0; i< files.length; i++){ var itemFile = files[i]; fs.stat(__di ...

  7. html页面输入框input的美化

    input输入框是网页必不可少的组件,可是每个浏览器对于输入框的显示样式各有不同 例如:    上图分别就是谷歌浏览器和IE浏览器自带显示的输入框,样式也不足人意,所以大多都会自己写样式 以下是一个简 ...

  8. Example: Encoded SNMP Message - SNMP Tutorial

    30.11 Example Encoded SNMP Message The encoded form of ASN.1 uses variable-length fields to represen ...

  9. 获取页面内iframe里面的元素

    结构直接看图比较直接 这里window.frames获取的是iframe的数组 要记得给iframe加个ID才行 后面的记录会详细讲解 在父窗口获取页面内的iframe 里面的元素window.fra ...

  10. 【Solr】新建core后,启动服务访问web报错 HTTP Status 503

    新建core collection2后,启动solr服务,访问solr web界面报错. HTTP Status 503 - Server is shutting down or failed to ...