servlet

SpringMVC实现PUT请求上传文件

坚强是说给别人听的谎言 提交于 2019-12-19 23:33:38
在JQuery中,我们可以进行REST ful中delete和put的请求,但是在java EE标准中,默认只有在POST请求的时候,servlet 才会通过getparameter()方法取得请求体中的相应的请求参数的数据。而PUT,delete请求的请求体中数据则默认不会被解析。 关于delete请求:delete请求用来从服务器上删除资源。因此我们只需要把要删除的资源的ID上传给服务器,即使是批量删除的时候,也可以通过URL传参的方式将多个id传给servlet,因此,可以满足我们的需求,可以直接发送请求。 关于put请求(指的是带有请求体) 没有文件时:SpringMVC提供了一个将post转换为put和delete的方法,通过在web.xml中注册一个HiddenHttpMethodFilter过滤器。 上传文件时:我们可以通过在web.xml中注册一个MultipartFilter, 一定要在HiddenHttpMethodFilter之前 。 SpringMVC实现PUT,DELETE请求 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param>

spring拦截器-过滤器的区别

时间秒杀一切 提交于 2019-12-19 16:48:36
1. 理解 拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。 过滤器:是在javaweb中,你传入的request、response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符.。 2. 具体区别 拦截器是AOP( Aspect-Oriented Programming)的一种实现,底层通过动态代理模式完成。 区别: (1)拦截器是基于java的反射机制的,而过滤器是基于函数回调。 (2)拦截器不依赖于servlet容器,而过滤器依赖于servlet容器。 (3)拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 (4)拦截器可以访问action上下文、值栈里的对象,而过滤器不能。 (5)在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。 3. 本质区别

struts

梦想的初衷 提交于 2019-12-19 12:54:10
1.struts初步了解 什么是框架:   框架简单来说是一个半成品的项目,用了框架之后我们会更快,更好的完成项目。 什么是struts:   strut2是处理访问服务器的请求   取代serylet struts下载 2.使用传统的servlet编写用户登录功能 3.使用struts2编写用户登录功能 4.对比两种方式 (1)启动: servlet:无 struts:配置filter web.xml中配置如下: 启动项  (2)创建: servlet:继承HttpServlet,重写doget与dopost方法 添加注解或者配置web.xml struts: 继承ActionSupport,写一个返回值为String而且抛出一个异常。 配置struts.xml <package name="MyPackage" namespace="/" extends="struts-default"> <action name="loginAction" class="com.web.UserAction" method="execute"> <!-- 默认为转发 --> <result name="success" type="redirect">/index.html</result> <result name="error">/login.jsp</result> </action>

spring boot(18)-servlet、filter、listener

安稳与你 提交于 2019-12-19 07:54:55
servlet、filter、listener的用法就不讲了,只讲如何在spring boot中配置它们。有两种方式,一种是从servlet3开始提供的注解方式,另一种是spring的注入方式 servlet注解方式 servlet3.0以前,servlet、filter、listener需要在web.xml中配置,从servlet3.0开始,支持通过类注解进行配置。在spring boot中如果要支持这种注解,必须在配置类增加一个@ServletComponentScan注解,来扫描servlet的注解 @ServletComponentScan @SpringBootApplication servlet注解配置,urlPatterns就是这个servlet的请求路径,相当于spring mvc的mapping @WebServlet(urlPatterns = "/hello") public class MyServlet extends HttpServlet { filter注解配置,urlPatterns就是这个过滤器要过滤哪些路径 @WebFilter(urlPatterns = "/*") public class MyFilter implements Filter { listener注解配置,监听器都是全局性的,不需要配置路径 @WebListener

web.xml 相关配置

一世执手 提交于 2019-12-19 07:46:09
每一个规范的web应用在WEB-INF目录下都应该有一个web.xml配置文件,用来对web应用的属性进行配置。web.xml配置文件包含的内容很多,但是基本的配置应该包括如下几部分: 环境参数初始化 Servlet配置 过滤器配置 监听器配置 JNDI配置 Session配置 JSP网页相关配置 MIME TYPE配置 welcome文件清单 错误处理 根元素和头 因为该配置文件是一个xml文档,因此必须遵循xml的书写规范,例如大小写敏感,需要声明版本号和字符编码等,一个没有任何配置的原始的xml文件为: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns=" http://java.sun.com/xml/ns/j2ee " xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd " version="2.4"> </web-app> 环境参数初始化 根元素:<init-param> 子元素:<param-name>和<param-value>

SSM项目启动报错WEB-INF\\lib\\javax.servlet-api-4.0.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10

二次信任 提交于 2019-12-19 07:37:57
错误信息: validateJarFile(D:\tomcat_ryxunit\webapps\ryx_unit\WEB-INF\lib\javax.servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class原因:Tomcat/lib下面和Web-inf/lib下面的jar包有冲突,比如servlet-api.jar这样的jar包,所以,要删除WEB-INF/lib下面的这个jar包,但是编译的时候又会报错,所以可以将这个包放在项目的某个地方,然后添加到依赖中,然后将这个包设置为只在编译时间提供(scope=Provided): 注意:部署 Artifacts 的时候,选择已经编写好的模块,但是如果模块改了名字以后,可能 Artifacts 绑定的模块还没有改变(或者是另外一个一样名字的),这样会一直出错。所以最后重新建立一个 Artifacts . 而且名字不要起一样的! 来源: https://www.cnblogs.com/qianzf/p/11180012.html

SpringMVC解析1-使用示例

…衆ロ難τιáo~ 提交于 2019-12-19 03:35:53
Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。Spring的MVC是基于servlet功能实现的,通过实现Servlet接口的DispatchSerlver来封装其核心功能实现,通过将请求分派给处理程序,同时带有可配置的处理程序映射,视图解析,本地语言,主题解析以及上载文件支持。默认的处理程序是非常简单的Controller接口,只有一个方法ModelAndView handleRequest(request,response)。Spring提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,可以继承AbstractFormController。如果需要把多页输入处理到一个表单,那么可以继承AbstractWizardFromController. SpringMVC或者其他比较成熟的MVC框架而言,解决的问题无外乎三点: 将web页面的请求传给服务器。 根据不同的请求处理不同的逻辑单元 返回处理结果数据并跳转至响应的页面。 在springmvc流程: 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制; DispatcherServlet——>HandlerMapping,

token防止表单重复提交

大兔子大兔子 提交于 2019-12-18 22:54:22
出现表单重复提交的三种情况: 一、服务器响应缓慢,用户多次点击提交按钮。 二、提交成功后刷新页面。 三、提交成功后返回表单页面再次点击提交。 package com.jalja.token; import java.io.IOException; import java.io.PrintWriter; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UserServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request,

javaweb学习总结(十九)——JSP标签

不羁的心 提交于 2019-12-18 21:06:34
一、JSP标签介绍   JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。 二、JSP常用标签   jsp的常用标签有以下三个 <jsp:include>标签 <jsp:forward>标签 <jsp:param>标签 2.1、<jsp:include>标签   <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。 语法: <jsp:include page="relativeURL | <%=expression%>" flush="true|false" />   page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。   flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。 范例:使用jsp:include标签引入资源 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 3 <html> 4

文件下载

有些话、适合烂在心里 提交于 2019-12-18 18:44:00
http://www.blogjava.net/sxyx2008/archive/2010/12/10/340279.html package com.future.zfs.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class FileDownLoadServlet extends HttpServlet{ @Override protected void service