您的位置:澳门皇家赌场真人在线 > 皇家赌场游戏 > 进级使用,让开拓更干净俐落与标准【澳门皇家

进级使用,让开拓更干净俐落与标准【澳门皇家

发布时间:2019-10-04 15:43编辑:皇家赌场游戏浏览(81)

    小编境遇认证(暗中认可已经盘算好以下条件):Java情状:JDK1.8.0服务器:tomcat9( IDEA运动型maven:maven 3.5.0操作系统:macOS

    澳门皇家赌场 1选择webapp骨架.png

    澳门皇家赌场 2创设项目坐标.png

    澳门皇家赌场 3品类名称.png

    澳门皇家赌场 4maven营造产生.png

    眼前是用SpringMVC时,往往使用ExceptionHandler去做Controller层的统一卓殊管理。使用ExceptionHandler表明的丰硕管理措施能够动用很灵敏的主意具名。

    澳门皇家赌场 5u=1561729476,1694791296&fm=27&gp=0.jpg

    澳门皇家赌场 6Struts2进阶

    澳门皇家赌场 7

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hsiung</groupId> <artifactId>springmvc</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>springmvc Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <!--属性配置spring版本--> <spring.version>4.3.13.RELEASE</spring.version> </properties> <dependencies> <!--spring mvc简单工程依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!--junit单元测试依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>springmvc</finalName> </build></project>
    
    <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/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>springmvc</display-name> <!--spring mvc拦截器配置--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--spring mvc配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <!--需在Resources目录下,新建springmvc.xml配置文件--> <param-value>classpath:springmvc.xml</param-value> </init-param> <!--标记容器启动时自动加载并初始化disaptcherServlet--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!--编码过滤器--> <filter> <filter-name>encodingFilter</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> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/</url-pattern> </filter-mapping></web-app>
    
    • 贰个拾分参数。声美赞臣个家常的可怜可能越发具体的不得了
    • Request 和/或 response 对象(Servlet API 或 Portlet API)。能够选取贰个一定 - request/response的项目,举个例子ServletRequest / HttpServletRequest
    • Session 对象
    • WebRequest 或 NativeWebRequest
    • Locale
    • InputStream / Reader 访谈须求内容
    • OutputStream / Writer 生成响应内容
    • Model

    支付Web应用,数据的囤积和管理往往离不开数据库和SQL语句。在动用Java开辟的Web应用中,自然也少不了连接数据库的手续。在底层连接数据库的时候,经常选拔JDBC本领,也正是Java的一种提供数据库连接和操作SQL的底层API。但是互连网本事正在急迅发展,使用原始JDBC已经满意不断项指标支出需求了,那就使得Hibernate、MyBatis、JPA、JDO等局地特出的ORM(Object Relational Mapping,对象关系映射)框架诞生,它们不但结合了原生JDBC的机能,还使开辟简捷化、标准化。

    在struts.xml配置文件中,给动作类注入值。调用的是setter方法。

    ansible <pattern_goes_here> -m <module_name> -a <arguments>
    

    澳门皇家赌场 8类型结构.png

    JDBC能力作为Java Web的数据库连接中央API,已经成为Java Web开荒中至关重要的工具。可是守旧的数据库连接的付出方式是有局限性的,领悟其需求优化的地点,有扶助驾驭MyBatis框架的优势所在。

    澳门皇家赌场 9案由:是由叁个staticParams的拦截器达成注入的。澳门皇家赌场 10澳门皇家赌场 11

    • <pattern_goes_here> 指定host信息
    • <module_name> 钦点模块
    • <arguments> 钦定参数
    @Controller//spring mvc控制层注解@RequestMapping//地址映射注解,url形如:.../testpublic class HelloController { @RequestMapping//地址映射注解,url形如:.../test/hello //此注解用于直接返回注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,不走视图解析器 @ResponseBody public String sayHello() { return "Hello,spring mvc!"; }}
    
    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--配置包扫描器--> <context:component-scan base-package="com.hsiung.controller"/> <!--配置注解驱动--> <mvc:annotation-driven/></beans>
    
    • ModelAndView 对象 (Servlet MVC or Portlet MVC)
    • Model 对象
    • Map 对象,
    • View 对象
    • 被深入分析成二个视图名称的String 值
    • @ResponseBody 证明的方法 (只限Servlet) 设置响应内容
    • HttpEntity<?> 或 ResponseEntity<?> (仅限Servlet) 设置响应头和响应内容
    • void。方法本人管理了响应。

    JDBC(Java DataBase Connectivity)即“Java数据库连接”,是一种提供连接数据库、使用SQL语句操作数据库数据的手艺的标准Java API。在理念的JSP/Servlet开采情势下,日常直接使用JDBC进行数据库的连接和操作。

    透过客商的表单封装央求正文参数。

    1、并行实践

    1.Edit Configuration

    澳门皇家赌场 12配置tomcat服务器.png

    2.选择Tomcat Server->Local

    澳门皇家赌场 13Tomcat Server-Local.png

    3.配置tomcat

    澳门皇家赌场 14tomcat当地配置选取.png

    4.加入springmvc项目

    澳门皇家赌场 15deployment选择.png

    能够自定义配置Application context,访问时增多那个布局就能够。

    U大切诺基L规范:localhost:8080+Application context配置消息+test/hello比方:澳门皇家赌场, mvc!,即表示成功。

    多读书官方网址的学问,博客只用来记录和增加援救,不可全信。maven依赖商旅:

    发生卓殊时,不唯有须要输出极度本人,平常还亟需基于Request的具体内容来深入分析、排查难点。举个例子HttpRequestMethodNotSupportedException、HttpMessageConversionException等等,那些十分产生在作业代码管理从前,业务代码是不可能取获得request的多寡的,产生极其时只要能够见到央浼body的具体内容,那么处理起来就能够同仁一视,一石二鸟。谈起来大约,做起来却不是很顺遂,即便ExcelptionHandler中能够流传ServerletRequest作为入参,不过ServerletRequest的inputStream只可以被读取叁遍,发生非常的时候再想去读取body只可以悲催的得到一个早就Closed的Stream。找了一大圈,开掘了二个卓有成效的格局,多谢StackOverflow -_-~

    古板支付形式中,在利用JDBC举办数据库连接时,平时都在引进相关的数据库驱动jar包后,创立多少个数据库连接类,该类提供数据库驱动的加载、数据库连接参数配置、连接对象的收获以及一连对象的关门操作,代码示比如下:

    2.1、动作类作为实人体模型型

    实人体模型型:Entity,对应数据库中表的笔录(注意类对应的是表结构,而指标对应的是一条记下)

    澳门皇家赌场 16澳门皇家赌场 17

    缘由:是由params拦截器完毕的。

    # 重启 atlanta 组的机器,并发分支 10ansible atlanta -a "/sbin/reboot" -f 10
    

    使用ContentCachingRequestWrapper

    1. 通过过滤器将ServerletRequest封装成ContentCachingRequestWrapper,body被读取后,会被它缓存。
    @Component public class RequestWrapperFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException { filterChain.doFilter(new ContentCachingRequestWrapper(httpServletRequest), httpServletResponse); } }
    
    1. 进级使用,让开拓更干净俐落与标准【澳门皇家赌场】。ExceptionHandler传入ServletRequest,此时的ServletRequest便是ContentCachingRequestWrapper,输出即可
     @ExceptionHandler({HttpRequestMethodNotSupportedException.class, HttpMessageConversionException.class, TypeMismatchException.class}) public ResponseEntity<Response> returnMediaTypeNotSupportError(Exception ex, ServletRequest request) { if (request != null && request instanceof ContentCachingRequestWrapper) { ContentCachingRequestWrapper wrapper = (ContentCachingRequestWrapper) request; logger.warn("BAD_REQUEST_BODY:{}", StringUtils.toEncodedString(wrapper.getContentAsByteArray(), Charset.forName(wrapper.getCharacterEncoding; } .....
    
    package cn.com.test.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DBConnection { //定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; //定义MySQL的数据库连接地址 public static final String DBDURL = "jdbc:mysql://localhost:3306/mydata" ; //MySQL数据库的连接用户名 public static final String DBUSER = "root" ; //MySQL数据库的连接密码 public static final String DBPASS = "1234" ; static{ try { Class.forName; } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection(){ Connection conn=null; try { conn=DriverManager.getConnection(DBDURL,DBUSER,DBPASS); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static void close(ResultSet rs,Statement st,Connection conn){ try { if{rs.close();} if{st.close();} f(conn!=null){conn.close();} } catch (SQLException e) { e.printStackTrace(); } } public static void close(Statement st,Connection conn){ close(null,st,conn); }}
    

    2.2、动作类和实人体模型型分开

    澳门皇家赌场 18

    问题:

    鉴于大家向来不开端化user对象,默以为null,一调用setUser方法,就空指针分外了。可是框架却封装进去值了。

    原因:

    经超过实际施进度:

    澳门皇家赌场 19澳门皇家赌场 20

    2、Shell 命令

    本文由澳门皇家赌场真人在线发布于皇家赌场游戏,转载请注明出处:进级使用,让开拓更干净俐落与标准【澳门皇家

    关键词: