IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> servlet技术一天全搞定 -> 正文阅读

[Java知识库]servlet技术一天全搞定

标记文本
servlet是用java语言编写并应用到WEB服务器端的扩展技术,它先于JSP产生(服务器在执行JSP页面时,会将JSP页转换为SERVLET类),可以方便地对WEB应用中的HTTP请求进行处理,Servlet对象主要封装了对HTTP请的处理和转发视图,并且它的运行需要Servlet容器(Tomcat,JBoss)的支持,Servlet对象对WEB应用进行了封装,提供了Servlet对WEB应用的编程接口,还可以对HTTP请求进行相应的处理,如处理提交数据,会话跟踪,读取和设置HTTP头信息。Servlet不仅拥有JAVA提供的API,而且还可以调用Servlet封装的Servlet API编程接口。因此,在在业务功能方面是十分强大的。
Servlet对象在Servlet容器启时被初始化,当第一交被请求时,Servlet容器将其实例化,此时它驻存于内存之中,如果存在多个请求,那么Servlet不会再被实例化,扔然由些Servlet对其进行处理,每个请求是一个线程,而不是一个进程,因此,Servlet对请求处理的性能是十分高效的。

Servlet与JSP的区别

Servlet是使用JavaServlet 接口中(API)运行在WEB应用服务器上的JAVA程序,其功能十分强大,不但可以处理HTTP请求中的业务逻辑,而且还可以输出HTML代码来显示指定页面,而JSP是一种在Servlet规范之上的动态 网页技术 ,在JSP页面中,同样可以编写 业务逻辑 处理HTTP请求,也可以通过HTML代码来编辑页面,在实现功能上Servlet与JSP貌似相同,实侧存在一定的区别,表现如下:
1,角色不同
JSP页面可以存在HTML代码与JAVA代码共存的情况,而SERVLET需要承担客户请求与业务处理的中间角色,只有调用固定的方法才能将动态内容输出为静态的HTML,所以JSP更具有显示层的角色。
2.编程 方式不同
servlet与JSP在编程方法上存在很大的区别,使用servlet开发WEB应用程序需要遵循java语言的标准,而JSP需要遵循一定的脚本语言规范,在servlet代码中,需要调用SERVLET提供的相关API接口方法,才可以对HTTP请求及业务进行处理,对于业务逻辑方面的处理功能更加强大,而在JSP页面中,通过HTML代码与JSP内置对象实现对HTTP请求及页面的处理,其显示界面的功能更加强大
3.servlet需要编译后运行,
servletf需要在java编译器编译后才运行在WEB容器中运行,而JSP则与之相反,JSP由JSP Container对其进行管理,它的编译过程也由JSP Container对JSP进行自动编译 ,所以无论JSP文件是否被创建还是被修改,都不需要对其进行编译就可以执行。
4.速度不同
由于JSP页面由JSP Container对其进行管理 ,在每次执行不同内容的动态JSP页面时,JSP container都需要对其进行自动编译,所以,它的执行效率低于Servlet的执行效率,而servlet在编译完成之后,不需要再次编译,可以直接获取及输出动态内容 。
说明:如果每句HTML用SERVLER来的固定方法来输出,则操作过于复杂,而且在页面之中往往还需要用到CSS,JS等,所以操作十分繁琐,针对这一问题,产生了JSP.

  • Servlet代码结构,
    在java中,通常所说的servlet是指HTTPServlet对象,在声明一个对象为Servlet时,需要继承HTTPServlet这个抽象类。

  • Servlet开发
    servlet的创建十分简单,主要有两种方法:第一种方法为创建一个普通的JAVA类,使这个类继承HttpServlet类,再注册Servlet对象,可以通过用@WebServlet注解声明的方式实现,也可以通过配置web.xml文件的方式实现,此方法操作比较繁琐,在快速开发中通常不被采纳,较而使用第二种方法即直接通过IDE集成开发工具进行创建。
    new-other命令,在打开的new窗体中选择web标签下的Servlet选项,并单击next,在打开的创建Servlet的窗口中,输入包名和Servlet类名,单击next,选择自动创建所需要继承的函数,单击finish.
    public class DemoServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding(“utf-8”);
    response.setContentType(“text/html;charset=utf-8”);
    PrintWriter out = reponse.getWriter();//获取请求输出流对象
    out.printIn("《html>");
    out.printIn("《HEAD> <TITLE》servlet实例我《/TITLE></HEAD》《/html>");
    String address = request.getParameter(“to”);
    address (address==null)?"":address;//对address做非null处理
    String url= null;
    swithch(address){
    case “baidu”
    url = “www.baidu.com”;
    break;
    case “qq”
    url = “www.qq.com”;
    break;
    default:
    url = “www.xjdydq.com”;
    break;
    }response.sendRedirect(url);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
    request.setCharacterEncoding(“utf-8”);
    response.setContentType(“text/html;charset=utf-8”);
    request.getRequestDispatcher("/admin/AdminBookServlet? method=findAll").forward(request, response);
    } catch (Exception e) {
    if(e instanceof FileUploadBase.FileSizeLimitExceededException) {
    request.setAttribute(“msg”, “您上传的文件超出了15KB”);
    }
    }
    }
    }
    如果我们在URL里面输:http://127.0.0.1:8080[项目名称]/demoServlet?to=baidu

Servlet2.0的配置方式

servlet3.0技术支持注解的方式实现URL映射,但想要Servlet2.0 版本的Servletr对象正常地运行,需要修改WEB项目的配置文档,以告智WEB容器哪个请求调用哪个Servlet对象进行处理,相当于对servletf进行注册,servlet的配置包含在WEB-INF/web.xml文件中,主要通过下面两步进行设置
1.声明Servlet对象。
在web.xml文件中,通过,《servlet> 标签声明一个Servlet对象,在此标签下包含两个子元素,分别为《servler-name》与《servlet-class>,其中《servler-name》用于指定servlet的名称,此名称可以为自定义的名称;《servlet-class>元素用于指定Servlet对象的位置,即填写Servlet对象的完整类名,

encodingFilter
com.itheima.web.filter.EncodingFilter

2.映射Servlet
在web.xml文件中声明了Servlet对象后,需要映射访问Servlet的URL,此操作使用《servlet-mapping>标签进行配置,《servlet-mapping>标签包含两个子元素,分别为《servlet-name>和《url-pattern>,其中《servlet-name>元素与声明Servlet对象《servlet标签中《servlet-name>元素相对应,不可以随意命名,《url-pattern>元素用于映射访问URL,其配置方法如下:

encodingFilter
/*

过滤器和监听器

Servlet过滤器是从servlet2.3规范新增的功能,监听器可以监听到WEB应用程序启和关闭,创建过滤器和监听器需要继承相应的接口,并对其进行配置。

  • servlet过滤器
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:22:28  更:2021-08-15 15:24:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 6:21:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码