servlet

JavaWeb--解析Servlet

烂漫一生 提交于 2019-12-04 06:54:51
什么是Servlet? Servlet(Server Applet),全称是Java Servlet。Servlet技术是Sun公司提供一种实现动态网页的解决方案,它是基于Java编程语言的Web服务器端编程技术,主要用于在Web服务器端获得客户端的访问请求信息和动态生成对客户端的响应信息。一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet的Web服务器(具有Servlet引擎)调用和启动运行。一个Servlet程序负责处理它所应一个或一组URL地址的访问请求,并用于接收客户端发出的访问请求和产生响应内容。 Servlet程序具有以下的一些基本功能: 获取客户端通过HTML的Form表单递交的数据和URL后面的参数信息。 创建对客户端的响应消息内容。 访问服务器的文件文件系统。 连接数据库并开发基于数据库的应用。 调用其他Java类。 Servlet的工作模式 客户端发送请求至服务器。 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器。 服务器将响应放回给客户端。 ServletAPI Sun公司定义了一套专门用于开发Servelt程序的Java类和接口,这些类和接口提供Servlet程序开发中涉及的各种功能,它们统称为ServletAPI(ServletApplication Programming

JavaEE——Servlet的Web访问名称

余生长醉 提交于 2019-12-04 06:53:10
声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Servlet的Web访问名称 一个Servlet的web访问名称可以不止一个,并且除了用web.xml配置之外,还可以使用注解的方式配置,现在主流的配置方式是使用注解,这是Servlet3.0的特性,注解的配置要比web.xml轻量、简单,但是不排除一些老工程仍然使用着web.xml的配置方式。 下面介绍一下,在注解上使用 * 通配符: 1./admin/* 这种配置表示访问的名称必须是以admin/开头,但是后面的字符串可以任意,*作为一个匹配任意字符串的存在,以下使用实际代码示例演示一下这个用法: 运行结果: 控制台: 2.*.action 表示访问的名称后缀必须是action ,前缀可以是任意的字符串: 运行结果: 控制台: Servlet家族 Servlet家族派生体系中的最高父类是Servlet接口,此接口定义了其实现类必须要重写的基本方法。然后就是GenericServlet类,这是一个抽象类,是一个通用的Servlet,它实现于Servlet接口,这个类相当于给Servlet家族的派生体系增加了一个分支,接着就是到了具备协议的HttpServlet类,这也是一个抽象类继承于GenericServlet类,不过此类没有定义抽象方法

springMVC简述

守給你的承諾、 提交于 2019-12-04 06:21:34
 Springmvc 1 SpringMVC架构 1.1 架构图 1.2 架构流程图 用户发送请求至前端控制器DispatcherServlet; DispatcherServlet收到请求调用HandlerMapping处理器映射器; 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet; DispatcherServlet通过HandlerAdapter处理器适配器调用处理器; 执行处理器(Controller,也叫后端控制器); Controller执行完成返回ModelAndView给HanderAdapter处理器适配器; HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet; DispatcherServlet将ModelAndView传给ViewReslover视图解析器; ViewReslover解析后返回具体View给DispatcherServlet; DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中); DispatcherServlet响应用户 1.3 组件说明 DispatcherServlet:前端控制器 用户请求到达前端控制器,它就相当于mvc模式中的c

RequestDispatcher

无人久伴 提交于 2019-12-04 05:51:02
一、RequestDispatcher RequestDispatcher实例对象是由Servlet引擎创建的,它用于包装一个要被其他资源调用的资源,例如Servlet、HTML文件,JSP文件等,并可以通过其中的方法将客户端的请求转发给所包装的资源。RequestDispatcher接口定义了forward和include方法,forward用于将请求转发到RequestDispatcher对象封装的资源,include用于将RequestDispatcher对象封装的资源作为当前响应内容的一部门包含进来。 ServletContext接口中定义了两个用于获取RequestDispatcher对象的方法: getRequestDispatcher方法:返回包装了某个路径所指定的资源的RequestDispatcher对象,传递给该方法的路径字符串必须以“/”开头,“/”代表当前Web应用程序的根目录(虚拟目录)。WEB-INF目录中的内容对RequestDispatcher对象是可见的,所以,传递给getRequestDispatcher方法的资源可以是WEB-INF目录中不能被外界访问的文件。 getNamedDispatcher方法:返回包装了某个Servlet或JSP文件的RequestDispatcher对象

SpringMVC拦截器拦截页面(坑)

时光总嘲笑我的痴心妄想 提交于 2019-12-04 05:00:41
问题:在使用了MVC拦截器时,访问除登录页面以外的URL时,判断是否登录,未登录的访问全部跳转至登录界面,但是在设置好时,是会判断并跳转,但是在起初,未登录访问,会先进入访问的资源页面后,立即闪退去登录页面。 但是明显这种状况是不满足权限拦截需求的,是错误操作。 原因就在于一开始在web.xml中配置了默认servlet对 *.html 资源的放行,(因为不配无法访问到html资源。) 于是问题就产生了,下面是开始的配置: <!--避免springmvc拦截以html结尾的请求--> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> 但是,这样虽然表面上的功能都实现了,却会出现上面说的问题。 解决方式很简单,在web.xml删除上面的配置,将该默认的servlet配置移到mvc的配置文件中配置,如下: <!-- 配置静态资源 默认servlet配置 允许使用"/"做整体映射 等--><mvc:default-servlet-handler /> 重新运行,问题解决,不会再进入被拦截页面后又闪跳会登录界面了。 来源: https://www.cnblogs.com/xk920/p/11832553.html

servlet和jsp技术的区别与联系

前提是你 提交于 2019-12-04 04:56:19
------------恢复内容开始------------ 区别 1.jsp经翻译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类) 2.jsp更擅长内容的展示,servlet更擅长于逻辑控制,业务处理. 3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到. Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑,业务处理 Jsp是对Servlet封装后的的一种简化,使用Jsp只需要完成客户需要输出到客户端浏览器要展示的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端浏览器的响应。 联系: JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP翻译后是“servlet”。 ------------恢复内容结束---------

SpringMVC 学习笔记

瘦欲@ 提交于 2019-12-04 04:54:35
一、MVC 模式   MVC: Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。   model(模型):用于存储数据及用户请求的业务逻辑;   view(视图):向控制器提交数据;显示模型中的数据;   Controller(控制器):根据视图层的请求判断交给哪个模型处理、处理后的结果交给哪个视图显示。                                (图片来源:菜鸟教程) 二、spring MVC 的工作流程        三、示例   先新建项目,用maven导入依赖。然后在web.xml文件中进行配置,部署DispatcherServlet(前端控制器) <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app 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

Struts1小项目实践---idea中使用maven,完成使用struts1完成简易计算机

喜你入骨 提交于 2019-12-04 04:43:40
任务 使用struts1完成两个数的加减乘除,计算成功,则跳入计算成功页面返回算术表达式,计算失败则返回计算失败 要点 1.使用idea搭建Struts环境 2.开发流程梳理 3.struts元素介绍(ActionServlet、Action、ActionForword、ActionForm) 4.配置文件介绍(web.xml、Struts_config.xml) 5.ActionForm类与Action类的开发 6.jsp页面元素的补充了解 1.使用idea搭建Struts环境 使用idea构建mavenwebapp项目 导入必备架包 这样环境就搭建完了 2.开发流程梳理 1.涉及三个页面,输入页面、成功页面、失败页面 2.配置文件配置: web.xml配置servlet Struts_config配置actionForm、action、actionForward 3.action、actionForm、转向页面开发 计算器包含三个字段,param1、param2(两个数字)、flag(一个运算符)==》放入ActionForm中 取输入值、计算数值、转向页面 ==》放入Action中 inut.jsp、success.jsp、error.jsp开发 3.struts元素介绍(ActionServlet、Action、ActionForword、ActionForm)

测试demo controllerweb.xml

大城市里の小女人 提交于 2019-12-04 04:35:50
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!-- 解决post乱码 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param

JavaWeb面试题(转)

喜你入骨 提交于 2019-12-04 04:25:16
1、Tomcat的优化经验 答:去掉对web.xml的监视,把JSP提前编辑成Servlet;有富余物理内存的情况下,加大Tomcat使用的 JVM 内存。 2、什么是Servlet? 答:可以从两个方面去看Servlet: a、API:有一个接口servlet,它是servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。 b、组件:服务器端用来处理客户端请求的组件,需要在web.xml文件中进行配置。 3、Servlet的生命周期,并说出Servlet和CGI的区别? 答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。 这个生存期由 java x.servlet.servlet接口中的init、service、destroy方法表达。 web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现 根据请求的不同调用不同的do**()方法。结束服务,web容器调用servlet的destroy()方法。 区别: Servlet处于服务器进程中,它通过多线程运行service()方法,一个实例可以服务于多个请求,并且实例一般不会被销毁;而 CGI对每个请求都产生一个新的进程,服务完成后就销毁,所有效率低于Servlet。 4