Servlet简介
来源:互联网 发布:day one mac 破解版 编辑:程序博客网 时间:2024/06/08 14:43
一.Servlet是什么?
1.Servlet是sun公司提供的一门用java语言开发动态web资源的技术。
2.Sun公司在其API中提供了一个servlet接口,用户若想使用Java程序开发一个动态web资源,只需编写一个servlet接口的实现类,并把这个类部署到web服务器中,就算开发好了一个动态web资源。
3.按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。
二.Servlet特点:
0)需要的包:servlet-api.jar
1)普通的java类,继承HttpServlet类,覆盖doGet方法
2)Servlet类只能交给tomcat服务器运行!!!!(开发者自己不能运行!!!)
三.Servlet规范:
该规范定了三个技术标准:Servlet,Filter过滤器,listener监听器
四.Servlet运行流程图
五.Servlet手动编写步骤:
1.编写一个servlet程序,继承HttpServlet
2.找到HelloServlet类的class字节码,然后将它拷贝到tomcat的一个web应用中WEB-INF/classes目录下。
3.在当前web应用下的web.xml文件配置Servlet。
4.运行Tomcat,使用浏览器请求Web.xml中<url-pattern>的虚拟路径
5.启动tomcat服务器,运行访问
访问servlet: http ://localhost:8080/myweb/hello
六.Web.XML解析:
0.Web.xml如何出现自动提示?
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
在头文件中加入这一句代码即可在配置web.xml时出现自动提示
1.完整的配置文件:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp ://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>gz.itcast.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping></web-app>
2.流程解析:
(1)服务器会根据这段代码提供的名称来寻找配置文件<url-pattern>/hello</url-pattern>
(2)<url-pattern>/hello</url-pattern>会去寻找<servlet-name>HelloServlet</servlet-name>
(3)<servlet-name>HelloServlet</servlet-name>会去寻找<servlet>标签下的<servlet-name>HelloServlet</servlet-name>
(4)最后,<servlet>标签下的<servlet-name>HelloServlet</servlet-name>会去寻找<servlet-class>hey.up.HelloServlet</servlet-class>下的本地文件以供别人访问
七.第一个Servlet实例:
1.编写一个servlet程序,继承HttpServlet
public class HelloServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//解决中文乱码问题resp.setContentType("text/html;charset=utf-8");//向浏览器输出内容resp.getWriter().write("这是第一个servlet程序。当前时间为:"+new Date());}}
2.配置一个servlet程序
<servlet><!-- servlet的内部名称 ,该名称用来替代下面的包名加类名,可以自定义--><servlet-name>HelloServlet</servlet-name> //执行步骤3<!-- servlet类名: 包名+简单类名--><servlet-class>hey.up.HelloServlet</servlet-class> //执行步骤4</servlet><servlet-mapping><!-- servlet的内部名称,和上面的名称保持一致!!!--><servlet-name>HelloServlet</servlet-name> //执行步骤2<!-- servlet的访问名称: /名称 --><url-pattern>/hello</url-pattern> //http://127.0.0.1/hello //执行步骤1</servlet-mapping>
八.工具开发动态资源
1.开发步骤
1.创建web project (javaweb工程),至少J2EE5.0以上:
2.在WebRoot下建立静态资源文件,如:html
3.在src下建立动态资源文件:
3.1 new -> Servlet( servlet的代码生成器)
3.2 写pacakge -> class名 -> 修改mapping url
4.关联tomcat服务器:
4.1 window-> Preferences - > MyEcplise -> servers -> Tomcat 6.x (注意一定要enable)
5.部署web project应用。(拷贝web应用到tomcat的webapps目录下)
6.启动tomcat服务器
注意:
1.当我们使用DeBug启动服务器的时候,可以随时更改项目源码,一般可以实时看到项目的变化
2.当无法看到项目的变化的时候,就要在Servers列表处的服务器上右键-->Restart Server(重启服务器),来查看项目的变化
7.访问servlet
http ://localhost:8081/day08_web/hello
2.JavaWeb项目结构
(1)JavaWeb项目结构
|- WebRoot : web应用的根目录
|- 静态资源(html+css+js+image+vedio)
|- WEB-INF : 固定写法。
|-lib: (可选文件夹)固定写法。存放jar包文件。
|-classes: (可选文件夹)固定写法。存放class字节码文件
|-web.xml (项目配置信息,重要)
注意:
1)WEB-INF目录里面的资源不能通过浏览器直接访问
2)如果希望访问到WEB-INF里面的资源,就必须把资源配置到一个叫web.xml的文件中。
3)WEB-INF还可以存放一些不希望用户直接访问的文件,比如properties配置文件
(2)eclipse创建web project工程生成的项目结构
(3)在JavaWeb中,用户不会直接访问.java文件,而是通过XML文件,进行相应处理,之后转给java文件
问题:为什么servlet分为了servlet和servlet-mapping标签来分别处理浏览器请求呢?
解答:因为可以多个servlet-mapping对应一个servlet
例如:这样,当我在浏览器中,不管是浏览器hello1,还是hello2都可以用HelloServlet来响应
<servlet><servlet-name>HelloServlet</servlet-name> <servlet-class>hey.up.HelloServlet</servlet-class> </servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name> <url-pattern>/hello1</url-pattern></servlet-mapping><servlet-mapping><servlet-name>HelloServlet</servlet-name> <url-pattern>/hello2</url-pattern> </servlet-mapping>
- Servlet简介
- Servlet 简介
- Servlet简介
- Servlet 简介
- Servlet简介
- servlet 简介
- Servlet 简介
- Servlet简介
- Servlet简介
- Servlet简介
- Servlet 简介
- servlet简介
- Servlet简介
- servlet简介
- Servlet简介
- Servlet简介
- Servlet简介
- Servlet简介
- win10系统java不是内部或外部命令win10命令行运行java提示找不到或无法加载主类
- 编译MatCaffe
- spring bean的生命周期
- MapReduce的排序和二次排序
- Fedora系统之系统基本使用配置
- Servlet简介
- 常用编程风格
- 堆栈错误
- Codeforces 69D Dot(DFS)
- Android Studio 的安装和配置
- ubuntu wubi.exe 直接加载下载好的 amd64.tar.xz
- 盈透证券 简单API 实战
- HTML学习
- 支持向量机(SVM)一