当前位置: 首页 > news >正文

网站制作模板北京实力网站优化公司首选

网站制作模板北京,实力网站优化公司首选,网站建设公司怎么开,建网站的公司广州第一章#xff1a;响应数据和结果视图1. 返回字符串Controller方法返回字符串可以指定逻辑视图的名称#xff0c;根据视图解析器为物理视图的地址。RequestMapping(value/hello)public String sayHello() {System.out.println(Hello SpringMVC!!);//… 第一章响应数据和结果视图1. 返回字符串Controller方法返回字符串可以指定逻辑视图的名称根据视图解析器为物理视图的地址。RequestMapping(value/hello)public String sayHello() {System.out.println(Hello SpringMVC!!);// 跳转到XX页面return success;}UserControllerControllerRequestMapping(/user)public class UserController {RequestMapping(testString)public String testString(Model model){ System.out.println(testString执行了);// 模拟从数据库中查询的数据 User user new User(); user.setUsername(小白); user.setPassword(123); model.addAttribute(user,user);return success;}}jsp请求地址a hrefuser/testStringtestStringasuccess.jspEL表达式取值测试成功${requestScope.user.username}${requestScope.user.password}2. 无返回值情况如果控制器的方法返回值编写成void执行程序报404的异常 默认查找JSP页面没有找到。默认会跳转到 RequestMapping(value/initUpdate) initUpdate.jsp的页面。可以使用请求转发或者重定向跳转到指定的页面jsp:a hrefuser/testVoidtestVoida控制器 /** * 无返回值情况 * 请求转发一次请求不用编写项目的名称 * 请求重定向二次请求需要获取项目名称 */RequestMapping(testVoid)public void testVoid(HttpServletRequest req, HttpServletResponse resp) throws Exception { System.out.println(testVoid执行了);// 编写请求转发的程序,// req.getRequestDispatcher(/WEB-INF/pages/success.jsp).forward(req,resp);// 重定向不能直接进WEB-INF的文件夹 resp.sendRedirect(req.getContextPath()/index.jsp);// 设置中文乱码 resp.setCharacterEncoding(UTF-8); resp.setContentType(text/html;charsetUTF-8);// 直接会进行响应输出流到页面 resp.getWriter().print(你好);}请求转发成功重定向打开响应流页面运行方式3 .返回ModelAndView对象ModelAndView 对象是 Spring 提供的一个对象可以用来调整具体的 JSP 视图jspa hrefuser/testModelAndViewtestModelAndViewa控制器 /** * 返回ModelAndView * return */RequestMapping(/testModelAndView)public ModelAndView testModelAndView(){// 创建ModelAndView对象 ModelAndView mv new ModelAndView(); System.out.println(testModelAndView方法执行了...);// 模拟从数据库中查询出User对象 User user new User(); user.setUsername(小凤); user.setPassword(456); user.setAge(30);// 把user对象存储到mv对象中也会把user对象存入到request对象 mv.addObject(user,user);// 跳转到success的.jsp页面 mv.setViewName(success);return mv;}测试结果第二章SpringMVC框架提供的转发和重定向1. forward请求转发jspa hrefuser/testForwardtestForwardacontroller方法返回String类型想进行请求转发可以编写成控制器 /** * 使用forward关键字进行请求转发 * forward:转发的JSP路径不走视图解析器了所以需要编写完整的路径 * return * throws Exception */RequestMapping(/testForward)public String testForward() throws Exception { System.out.println(testForward...);// return forward:/WEB-INF/pages/success.jsp;return forward:/WEB-INF/pages/success.jsp;}结果2. redirect重定向jspa hrefuser/testRedirecttestRedirecta控制器 /** * 重定向 * return * throws Exception */RequestMapping(/testRedirect)public String testRedirect() throws Exception { System.out.println(testRedirect...);return redirect:/index.jsp;// return redirect:/user/findAll;}第三章SpringMVC响应JSON数据ResponseBody 注解DispatcherServlet会拦截到所有的资源导致一个问题就是静态资源(img、css、js)也会被拦截到从而不能被使用。解决问题就是需要配置静态资源不进行拦截在springmvc.xml配置文件添加如下配置mvc:resources标签配置不过滤location元素表示webapp目录下的包下的所有文件mapping元素表示以/static开头的所有请求路径如/static/a 或者/static/a/bmvc:resources location/css/ mapping/css/**/ mvc:resources location/img/ mapping/img/**/ mvc:resources location/js/ mapping/js/**/ jsphtmlheadtitleTitletitlescript typetext/javascript srcjs/jquery-1.7.2.jsscriptscript typetext/javascript$(function () {$(#btn).click(function () {// alert(hello); $.ajax({//请求地址 url:user/testAjax,//表示发给服务器的数据 data:{name:小白,age:18},//响应的数据类型 dataType: json,//设置字符集 contentType:application/json;charsetUTF-8,//表示请求类型 type: post, success:function (data) {alert(data);}});});});scriptheadbodybutton idbtn发送ajax请求buttonbodyhtml控制器:获取请求体数据 /** * 获取请求体数据 * return * throws Exception */RequestMapping(/testAjax)public void testAjax(RequestBody String body) throws Exception { System.out.println(body);}导入依赖 json字符串和JavaBean对象互相转换的过程中需要使用jackson的jar包dependencygroupIdcom.fasterxml.jackson.coregroupIdartifactIdjackson-databindartifactIdversion2.9.0versiondependencydependencygroupIdcom.fasterxml.jackson.coregroupIdartifactIdjackson-coreartifactIdversion2.9.0versiondependencydependencygroupIdcom.fasterxml.jackson.coregroupIdartifactIdjackson-annotationsartifactIdversion2.9.0versiondependency控制器将请求过来的字符串转换成JavaBeanControllerpublic class HelloController {RequestMapping(/testResponseJson)public void testResponseJson(RequestBody User user){ System.out.println(Json字符封装成javaBean user);}}控制器将JavaBean对象转换成Json响应到客户端 /** * 异步请求 * * return * throws Exception */RequestMapping(value /testAjax,method RequestMethod.POST)public ResponseBody User testAjax(RequestBody User user){// 客户端发送ajax的请求传的是json字符串后端把json字符串封装到user对象中 System.out.println(user);// 做响应模拟查询数据库 user.setUsername(小黑); user.setPassword(123);//做响应return user;}jsp script typetext/javascript$(function () {$(#btn).click(function () {// alert(hello); $.ajax({//请求地址 url:user/testAjax,//表示发给服务器的数据 data:{username:小白,password:123,age:18},//响应的数据类型 dataType: json,//设置字符集 contentType:application/json;charsetUTF-8,//表示请求类型 type: post, success:function (data) {alert(data);alert(data.username);alert(data.password);alert(data.age)}});});});script第四章文件上传与下载文件上传前提form表单的enctype取值必须是multipart/form-data默认值是:application/x-www-form-urlencoded)enctype:是表单请求正文的类型method属性取值必须是Post C 提供一个文件选择域当form表单的enctype取值不是默认值后request.getParameter()将失效。依赖导入 dependencygroupIdcommons-fileuploadgroupIdartifactIdcommons-fileuploadartifactIdversion1.3.1versiondependencydependencygroupIdcommons-iogroupIdartifactIdcommons-ioartifactIdversion2.4versiondependencyjsp:表单当form表单的enctype取值为Mutilpart/form-data时请求正文内容就变成每一部分都是MIME类型描述的正文--%form actionuser/fileupload methodpost enctypemultipart/form-data 选择文件input typefile nameupload/br/input typesubmit value上传文件/1.传统方式文件传输:控制器 RequestMapping(/fileupload)public String fileupload(HttpServletRequest req) throws Exception { System.out.println(测试成功);// 使用fileupload组件完成文件上传// 上传的位置 String path req.getSession().getServletContext().getRealPath(/uploads/);//创建File对象一会向该路径下上传文件 File file new File(path);// 判断路径是否存在如果不存在创建该路径if (!file.exists()) { file.mkdir();}// 解析request对象获取上传文件项 DiskFileItemFactory factory new DiskFileItemFactory();//磁盘文件项工厂 ServletFileUpload upload new ServletFileUpload(factory);//解析request(装的都是文件项) ListFileItem items upload.parseRequest(req);//遍历for (FileItem item: items){// 进行判断当前item对象是否是上传文件项if(item.isFormField()){// 说明普通表单向}else {// 说明上传文件项// 获取上传文件的名称 String filename item.getName();// 把文件的名称设置唯一值uuid String uuid UUID.randomUUID().toString().replace(-, ); filename uuid_filename; item.write(new File(path,filename));//删除临时文件 item.delete();}}return success;}2.SpringMVC文件传输jsp表单name必须和MultipartFile的名称一样h3SpringMVC方式文件上传h3form actionuser/fileupload2 methodpost enctypemultipart/form-data 选择文件input typefile nameupload /br/input typesubmit value上传 /form文件解析器配置 bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolverproperty namemaxInMemorySize value10485760propertybean控制器 RequestMapping(/fileupload2)public String fileupload2(HttpServletRequest req, MultipartFile upload) throws Exception { System.out.println(测试成功);// 使用fileupload组件完成文件上传// 上传的位置 String path req.getSession().getServletContext().getRealPath(/uploads/);//创建File对象一会向该路径下上传文件 File file new File(path);// 判断路径是否存在如果不存在创建该路径if (!file.exists()) { file.mkdir();}// 说明上传文件项// 获取上传文件的名称 String filename upload.getName();// 把文件的名称设置唯一值uuid String uuid UUID.randomUUID().toString().replace(-, ); filename uuid _ filename;// 完成文件上传 upload.transferTo(new File(file,filename));return success;}3.跨服务器文件上传在实际开发中我们会有很多处理不同功能的服务器。(注意此处说的不是服务器集群)应用服务器 负责部署我们的应用数据库服务器 运行我们的数据库缓存和消息服务器 负责处理大并发访问的缓存和消息文件服务器 负责存储用户上传文件的服务器。流程1.配置一个新的工程创建uploads文件夹2.配置服务器3.导入开发需要的jar包dependencygroupIdcom.sun.jerseygroupIdartifactIdjersey-coreartifactIdversion1.18.1versiondependencydependencygroupIdcom.sun.jerseygroupIdartifactIdjersey-clientartifactIdversion1.18.1versiondependency4.编写文件上传的JSP页面h3跨服务器方式文件上传h3form actionuser/fileupload3 methodpost enctypemultipart/form-data 选择文件input typefile nameupload/br/input typesubmit value上传/form5.编写控制器/** * 跨服务器文件上传 * * param upload * return * throws Exception */RequestMapping(/fileupload3)public String fileupload3( MultipartFile upload) throws Exception { System.out.println(跨服务器上传成功);// 使用fileupload组件完成文件上传// 定义图片服务器的请求路径 String path http://localhost:9090/uploads/;// 说明上传文件项// 获取上传文件的名称 String filename upload.getName();// 把文件的名称设置唯一值uuid String uuid UUID.randomUUID().toString().replace(-, ); filename uuid _ filename;// 创建客户端对象 Client client Client.create();//连接图片服务器 WebResource webResource client.resource(path filename);// 上传文件 webResource.put(upload.getBytes());return success;}如果报405在tomcat配置文件中加入这个参数测试上传成功第五章SpringMVC异常处理异常处理思路Controller调用serviceservice调用dao异常都是向上抛出的最终由DispatcherServlet找异常处理器进行异常的处理。SpringMVC的异常处理jsp:h3异常处理h3a hrefuser/testExceptiontestExceptiona自定义异常类Datapublic class SysException extends Exception{//存储 提示信息private String message;public SysException(String message) {this.message message;}}自定义异常处理器实现HandlerExceptionResolver接口public class SysExceptionResolver implements HandlerExceptionResolver {/** * 跳转到具体页面 */Overridepublic ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { SysException e null;//① a instanceof A:判断对象a是否是类A的实例。如果是返回true如果不是返回false。//② 如果 a instanceof A返回true,则 a instanceof B也返回true.其中类B是类A的父类。if (ex instanceof SysException){//强转(如果ex是SysException的实例) e (SysException) ex;}else { e new SysException(系统维护中...);}// 创建ModelAndView对象 ModelAndView mv new ModelAndView();// 把message信息存储到mv对象中也会把message对象存入到request域对象 mv.addObject(message,e.getMessage());// 跳转到异常页面.jsp mv.setViewName(error);return mv;}}配置异常处理器bean idsysExceptionResolver classcn.codewhite.exception.SysExceptionResolver/控制器ControllerRequestMapping(/user)public class UserController {RequestMapping(/testException)public String testException() throws SysException{//往浏览器抛异常Exception System.out.println(testException执行了);//模拟异常try {int i 1 / 0;} catch (Exception e) {// 打印异常信息 e.printStackTrace();// 抛出自定义异常信息throw new SysException(查询所有用户出现了错误...);}return success;}}error.jsp:h1${requestScope.message}h1测试结果跳转到了异常页面。第六章SpringMVC框架中的拦截器Spring MVC 的处理器拦截器类似于Servlet开发中的过滤器Filter用于对处理器进行预处理和后处理。可以定义拦截器链连接器链就是将拦截器按着一定的顺序结成一条链在访问被拦截的方法时拦截器链中的拦截器会按着定义的顺序执行。过滤器是Servlet规范的一部分任何框架都可以使用过滤器技术。拦截器是SpringMVC框架独有的。过滤器配置了/*可以拦截任何资源。拦截器只会对控制器中的方法进行拦截。它也是AOP思想的具体应用。我们要想自定义拦截器 要求必须实现HandlerInterceptor接口。过滤器与拦截器区别过滤器是servlet规范中的一部分任何java web工程都可以使用拦截器是SpringMVC框架自己的只有使用了SpringMVC框架的工程才能用。过滤器在url-pattern中配置了**/***之后可以对所有要访问的资源拦截。拦截器它是只会拦截访问的控制器方法如果访问的是jsphtml,css,image或者js是不会进行拦截的。1.单个拦截器控制器ControllerRequestMapping(/user)public class UserController {RequestMapping(/testInterceptor)public String testInterceptor(){ System.out.println(testInterceptor);return success;}}1.创建类实现HandlerInterceptor接口重写需要的方法/** * author JUNSHI 405773808qq.com * create 2020-05-30 14:35 */public class MyInterceptor1 implements HandlerInterceptor {/** * 预处理 controller方法执行前 * return true放行执行下一个拦截器如果没有执行controller中的方法 * return false不放行 * param request * param response * param handler * return * throws Exception */Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println(MyInterceptor1执行了...);return true;}}2.在springmvc.xml中配置拦截器类 mvc:interceptorsmvc:interceptormvc:mapping path/user/*/bean classcn.codewhite.interceptor.MyInterceptor1/mvc:interceptormvc:interceptors运行结果HandlerInterceptor接口中的方法preHandle方法是controller方法执行前拦截的方法可以使用request或者response跳转到指定的页面return true放行执行下一个拦截器如果没有拦截器执行controller中的方法。return false 不放行 不会执行controller中的方法。postHandle是controller方法执行后执行的方法在JSP视图执行前。可以使用request或者response跳转到指定的页面如果指定了跳转的页面那么controller方法跳转的页面将不会显示。postHandle方法是在JSP执行后执行request或者response不能再跳转页面了2.多个拦截器:多个拦截器执行顺序index.jsph3拦截器h3a hrefuser/testInterceptortestInterceptorasuccess.jsp:h3执行成功h3控制器ControllerRequestMapping(/user)public class UserController {RequestMapping(/testInterceptor)public String testInterceptor(){ System.out.println(testInterceptor);return success;}}拦截器1public class MyInterceptor1 implements HandlerInterceptor {/** * 预处理 controller方法执行前 * return true放行执行下一个拦截器如果没有执行controller中的方法 * return false不放行 */Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println(拦截器1preHandle拦截器拦截了 前111);return true;}/** * 后处理方法controller方法执行后success.jsp执行之前 */Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println(拦截器1postHandle方法执行了 后111);}/** * success.jsp页面执行后该方法会执行 */Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println(拦截器1afterCompletion方法执行了 最后111);}}拦截器2/** * 自定义拦截器2 */public class MyInterceptor2 implements HandlerInterceptor {/** * 预处理 controller方法执行前 * return true放行执行下一个拦截器如果没有执行controller中的方法 * return false不放行 */Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println(拦截器2preHandle拦截器拦截了 前222);return true;}/** * 后处理方法controller方法执行后success.jsp执行之前 */Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println(拦截器2postHandle方法执行了 后222);}/** * success.jsp页面执行后该方法会执行 */Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println(拦截器2afterCompletion方法执行了 最后222);}}springmvc.xml: mvc:interceptorsmvc:interceptormvc:mapping path/user/*/bean classcn.codewhite.interceptor.MyInterceptor1/mvc:interceptormvc:interceptormvc:mapping path/**/bean classcn.codewhite.interceptor.MyInterceptor2/mvc:interceptormvc:interceptors运行结果写在后边以上都是SpringMVC的一些重要内容如果需要SSM框架的PDF版笔记可以找我。
http://www.sadfv.cn/news/287873/

相关文章:

  • 保健品网站建设流程沈阳自助模板建站
  • 网站建设 经验怎样做 网站做seo
  • 买目录做网站百度官方免费下载
  • 网站做语言切换彩票推广网站如何做
  • 番禺网站制作多少钱it行业
  • 国外公共空间设计网站做投资要关注哪些网站
  • 一个网站的制作流程智慧团建官网pc端
  • 百度网站免费电话深圳网站设计服务找哪家
  • 网站title怎么写图书馆网站建设所需资料
  • 宁阳移动网站制作百度关键词推广怎么收费
  • 怎么给公司做微网站如何做电商创业项目
  • 网站如何调用微博冷色调网站
  • 网络工程培训网络班seo推广软件代理
  • 做网站的心得搜索引擎优化培训
  • 成都旅行社网站建设微网站有什么用
  • 精致网站赏析沈阳网站建设公司报价
  • 百度不收录哪些网站吗四川网站制作成都
  • 什么网站可以免费发布招聘信息做凸透镜成像的网站
  • 为什么做彩票网站会被提示危险安宁网站建设与制作
  • wordpress电影网站百度提交网址
  • 网站模版 下载工具做图片为主的网站对服务器的要求
  • 芜湖做网站的公司合肥模板网站建设软件
  • 优秀网站作品下载传媒公司取名 创意
  • 紫色个人网站模板佛山建网站哪里好
  • 吉安做网站的公司泉州百度关键词排名
  • 网站建设法律法规这几年做哪些网站致富
  • 石景山网站建设公司排行wordpress 头条采集
  • 福建省建设执业资格管理注册中心网站网站开发课程安排
  • 手机版网站开发人员选项移动积分兑换商城官方网站
  • 自己可以做网站服务器域客式单页网站能申请域名吗