【Web-servlet】

什么是Web?

        Web(World Wide Web)称为万维网,简单理解就是网站,它用来表示Internet 主机上供外界访问的资源。

  • 静态资源:指Web页面中供人们浏览的数据始终是不变的。(HTML, CSS)
  • 动态资源:指的并不是动态的效果图片等,而是指Web页面中供人们浏览的数据是由程序产生的,不同的时间点,甚至不同的设备访问Web页面看到的内容各不相同。(JSP/Servlet)
  • 在Java中,动态Web资源开发技术我们统称为Java Web。

什么是Web服务器? 

         Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中所有的用户通过浏览器进行访问。

常见的服务器:

开源(即开放源代码,免费): 

  • Tomcat(主流服务器之一,适合初学者)
  • jetty(淘宝,运行效率较高)
  • resin(新浪,开源服务器软件中效率最高)

收费:

  •  WebLogic(Oracle)
  • WebSphere(IBM)

Tomcat安装:

  1. 下载:官网下载(https://tomcat.apache.org)
  2. 解压安装:不建议放在中文路径下、不建议将服务器软件放在磁盘层次很多的文件夹。

Tomcat启动、访问、修改端口号:

  • 启动:进入Tomcat安装目录bin下,双击startup.bat启动程序。(cmd窗口没有出现异常并且结尾出现 Server startup in xxx ms 即启动成功)
    • 常见错误:
      • Tomcat 闪退:是由于JAVA_HOME配置导致的,请检查JAVA_HOME配置是否正确
      • 404:访问资源不存在,请检查URL路径是否正确
  • 访问:打开浏览器,输入:http://localhost:8080
  • 停止:双击 shutdown.bat 即可关闭Tomcat启动窗口。
  • 修改端口号:Tomcat默认端口号为8080,可以通过conf/server.xml文件修改。(找到 Connector标签,修改该标签中的 port 属性;修改端口号后需要重启Tomcat)

项目部署及访问静态资源: 

         创建项目(部署):

  • 在webapps中建立文件夹(项目应用),如:myweb  (建立文件夹相当于项目部署)
    • 创建WEB-INF文件夹,用于存放项目核心内容。(外界无法直接访问)
      • 创建classes,用于存放.class文件
      • 创建lib,用于存放jar文件
      • 创建web.xml,项目配置文件(可以到ROOT文件夹下的WEB-INF下复制一份)
    • 将网页index.html(静态资源)复制到myweb文件夹下,且注意与WEB-INF在同级目录,不要放到WEB-INF里。

        URL访问资源:

  • 项目创建完毕后,启动Tomcat服务器,在浏览器地址中输入URL:http://localhost:8080/myweb/index.html 
    • http:协议
    • localhost:域名或主机名
    • 8080:端口号
    • myweb/index.html :资源路径

=========================================================================

Servlet:

  • Servlet:Server Applet 的简称,是服务器端的程序(代码、功能实现),可交互的处理客户端发送到服务器端的请求,并完成操作响应。

Servlet作用: 

  • 接收客户端请求,完成操作。
  • 动态生成网页(网页数据可变)。
  • 将包含操作结果的动态网页响应给客户端。

搭建开发环境:

        将Servlet相关jar包( lib/servlet-api.jar)配置到classpath中 (右键 "我的电脑"-->属性-->高级-->环境变量,添加一个系统变量:名为classpath,值为servlet-api.jar的路径目录+ \servlet-api.jar )

编写Servlet

1.实现Servlet接口:

  • 实现javax.servlet.Servlet
  • 重写五个方法:
    • void  init(ServletConfig servletConfig):负责初始化Servlet对象,在整个Servlet生命周期中仅执行一次。
    • void  service(ServletRequest  request, ServletResponse response):Servlet的核心方法;负责交互。
    • void  destroy():当Servlet对象退出生命周期时,负责释放占有的资源,在整个Servlet生命周期中仅执行一次。
    • ServletConfig  getServletConfig():获得servlet配置信息对象。
    • String  getServletInfo():获得servlet的一个描述。

 编译、部署、配置、访问Servlet:

        编译:cmd命令(javac MyServlet.java)

        部署:将编译后生成的MyServlet.class文件复制到webapps/myweb/WEB-INF/classes下。

        配置:在web.xml中进行配置           

    <servlet>
        <servlet-name>my</servlet-name>
        <servlet-class>com.it.servlet.Myservlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>my</servlet-name>
        <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>

        访问:启动Tomcat后,在浏览器中访问url:localhost:8080/myweb/myservlet

2.继承GenericServlet抽象类:

        GenericServlet :实现了Servlet接口,但与HTTP协议无关。

                 只需要重写service()方法即可,其他四个方法可以选择性地重写。

3.继承HttpServlet抽象类(常用): 

        HttpServlet: 继承了GenericServlet 抽象类,重写了service()方法。

        根据请求方式的不同,父类HttpServlet中重写的service()方法会进行判断请求过来的方式,从而调用相应的doXXX方法。真正逻辑代码通常选择在自己重写的doXXX方法内部编辑。doXXX方法通常是以下方法(可根据自己需要选择性重写):

  • doGet():如果servlet支持HTTP GET请求
  • doPost():HTTP POST请求
  • doPut():HTTP PUT请求
  • doDelete():HTTP DELETE请求

Servlet使用Web.xml配置:

<url-pattern>定义匹配规则,取值说明:

  • 精确匹配:                /具体的名称                只有url路径是具体的名称时才触发servlet
    • /action
  • 后缀匹配:                *.XXX                         只要是以*.XXX结尾的就匹配出发servlet
    • *.do
  • 通配符匹配:             /*                               匹配所有请求,包含服务器所有资源
  • 通配符匹配:             /                                 匹配所有请求,包含服务器除.jsp以外所有资源

 <load-on-startup>(配置在<servlet></servlet>标签内的标签)

  • 用于设置元素标记容器是否应该在web应用程序启动的时候就加载这个servlet。
  • 它的值必须是一个整数,表示servlet被加载的先后顺序。
  • 如果该元素的值为负数或者没有设置,则容器会当servlet被请求时再加载。
  • 如果值为正数或者0时,表示容器在应用启动时就加载并初始化这个servlet,值越小,servlet的优先级越高,就越先被加载,值相同时,容器就会自己选择顺序来加载。

 Servlet使用注解的方式进行配置(servlet3.0):

         @WebServlet:

例:

@WebServlet(name="Index",urlPatterns={"/index.do"})
public class Index extends HttpServlet
  • name:给Servlet起名字(可省略)
  • value:配置url路径,可以配置多个
  • urlPatterns:配置url路径,和value作用相同(二者不能同时使用)
  • loadOnStartup:配置servlet创建时机,如果是0或正数 启动程序时创建,如果是负数 则访问时创建。数值越小优先级越高。

Web.xml 和注解可以同时存在(同时配置)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值