精华内容
下载资源
问答
  • javaEE视图层框架预览和分析

    千次阅读 2010-06-26 21:15:00
    从当前javaEE项目来说,有关view层的框架做个小总结.  一: struts1.x A配置 : 1 导入struts1.x的jar包到web-inf/lib下面 2 在web-inf目录下新建struts-config.xml文件,配置struts相关内容 ...

    从当前javaEE项目来说,有关view层的框架做个小总结. 
    一: struts1.x
    A配置
    1 导入struts1.x的jar包到web-inf/lib下面
    2 在web-inf目录下新建struts-config.xml文件,配置struts相关内容
    3 web.xml配置加入:
    <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    - <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
      </init-param>
    - <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
      </init-param>
    - <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
      </init-param>
      <load-on-startup>0</load-on-startup>
      </servlet>
    - <servlet-mapping>
      <servlet-name>action</servlet-name>
      <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    配置随容器启动的servlet,并初始化struts的配置文件.设置由struts处理的请求标识
    4 编写action控制类,继承Action[复杂情况继承DispactureAction],同时在struts-config.xml中配置这个控制 类action.例如:
    <action path="/stock" parameter="method" name="stocklogForm"   type="com.xuanmu.struts.action.stock.StockAction" scope="request">
      <forward name="LIST" path="/productsList.jsp" />
    </action>
    当截取到请求为stock时就由StockAaction处理.[继承DispactureAction的话分发到parameter值对应的方 法中去],该方法返回由字符串封装[LIST]的ActionForward对象,然后再struts-config.xml中的匹配 ,决定返回呈现的页面

    B流程
    1预备工作:服务器启动,Web应用启动时就会加载web.xml初始化actionServlet和记载struts配置文件(struts- config.xml),读配置信息到内存中,供以后action调用
    2(由请求定位action控制类)
    用户通过客户端向服务器发出一个请求,http://localhost:8080/struts_login/login.do
    我们已经在web.xml配置了所有符合某特定格式的请求都将由struts指定的Servlet来处理。比如:只要是以.do结尾的请求 (*.do)都由org.apache.struts.action.ActionServlet来对其进行处理.ActionServlet会拿到用户 的请求,并且去分析这个URL,它会截下 /login. 截下来之后,它是为了去struts-config.xml这个配置文件里面找<action>标签path属性的值等于所截部分的那个 Action.
    3(页面数据注入)
    找到对应的action之后,ActionServlet会把表单提交的数据给存放(生成对应调用set/get方法)到struts- config中相应的action标签的name属性值指定的actionform类中(若有,[actionform的子类,并且在form-bean 标签中配置了,若要进行数据验证可以在actionform中覆盖validate方法,推荐使用js,减轻服务器负担]).同时把actionform 和当前HttpServletrequest 对象注入到代调用的action方法中.
    4(调用action的处理方法)
    [默认是execute方法可以通过dispactureAction分发请求给自定义的方法]可以在方法中取得请求附属的数据(若需要),编写 业务逻辑代码处理请求.
    5(返回到view层的页面)
      Action的业务逻辑方法会返回一个ActionForward对象 ,ActionForward对象根据此action配置的<forward>匹配name进而调转到对应path的jsp页面上.
    C特性分析
    1 线程模式:单例模式,每个action只维护一个实例服务于对应的请求,效率较好,但多线程环境下需要考虑数据同步等安全问题
    2 JSTL标签和struts标签处理页面展示,页面相对整洁

    二:struts2.x
    A配置
    1 导入struts2.x的相关jar包到WEB-INF/lib下
    2 在项目的src目录下新建struts.properties或struts.xml
    struts.properties和struts.xml具有相同的配置作用,配置项目相关
    3 web.xml加入:
        <!-- 延长action中属性的生命周期,以便在 jsp页面中进行访问,让actionContextcleanup过滤器来清除属性,不让action自己清除。-->
        <filter>
            <filter-name>ActionContextCleanUp</filter-name>
            <filter-class>com.opensymphony.webwork.dispatcher.ActionContextCleanUp</filter-class>
        </filter>

    <!-- 若有其他相关的filter 需要加在这个地方-->

    <!--配置struts2过滤器-->
        <filter>
            <filter-name>webwork</filter-name>
            <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
        </filter>

        <filter-mapping>
            <filter-name>ActionContextCleanUp</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

        <filter-mapping>
            <filter-name>webwork</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

    4 编写action请求处理类.可以继承struts2的ActionSupport也可以不继承,(不过一般为了方便获取 request,response以及session 最好自己编写一个类继承ActionSupport,并在类中获取request等,让请求处理类继承这个类),然后根据页面和struts.xml配置 决定请求的处理方法.
    例1:
    ------页面
    #  <s:form action="login.action" method="post"> 
    #         <s:textfield key="username" name="user.username"/> 
    #         <s:password key="password" name="user.password" /> 
    #         <s:submit key="submit" /> 
    #   </s:form>
    ------struts.xml
    #     <action name="login" class="cc.dynasoft.action.LoginAction"> 
    #             <result name="success">/welcome.jspresult> 
    #             <result name="error">/login.jspresult> 
    #     </action> 
    这时请求会交由LoginAction的默认方法execute来处理,在LoginAaction中有user对象及其set方法,页面属性会 自动注入到此user对象中,返回字符串[success],匹配struts.xml此action内的result值确定调转的展示页面
    例2:
    -----页面
    <s:form action="submit.action">
    <s:textfield name="msg"label="输入内容"/> 
    <s:submit name="save"value="保存"align="left"method="save"/>
    <s:submit name="print"value="打印"align="left"method="print"/> 
    </s:form>
    -----struts.xml:
    <action name="submit" class="action.MoreSubmitAction">
    <result name="save">/result.jsp</result>
    <result name="print">/result.jsp</result>
    </action>
    由页面submit的method方法来指定对应的处理方法,方法返回字符串.继而确定调转展示页面

    例3:
    -----设置自定义的url后缀,有struts2处理例如struts.action.extension=php.默认为action,即 处理所有*.action的请求
    -----页面
    <form  method="post" action="Kinder_add.php"
      <input type="text" name="kinder.name">
      <input  type="text"name="kinder.zip">
      <input type="submit" value="提交">
    </form>
    -----strust.xml
    - <action name="*_*" method="{2}" class="ostar.lg.action.{1}Action">
      <result name="success">/default.jsp</result>
      </action>
    这样的意思是:所有由'_'间隔的请求都会有'_'前面的字符串同名的action类处理,并交给这个类的和'_'后面字符串同名的方法处理[简 化了配置],方法返回字符串继而确定调转展示的页面.(*_*只是一种自定义格式,可任意配置)
    B 流程 :
    1、客户端初始化一个对服务器的请求(tomcat);
    2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对 于 Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin);
    3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某 个 Action;
    4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;
    5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类;
    6、ActionProxy创建一个ActionInvocation的实例。
    7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调 用。
    8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但 不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。
    C特性分析
    1 线程模式,每一次请求都会产生一个新的实例处理请求. 多线程环境没有数据同步问题.
    2 引入数据的依赖注入
      [页面表单数据到action的注入,实例对象的注入,都是通过set注入,需要提供set方法]
    3 基于AOP的拦截器,可以在每次请求前后灵活控制
    4 配置文件支持表达式,基于约定优于配置的话可简化配置文件
    4 内置以插件形式支持ajax如dojo,支持多种模板展示jsp、freemarker,Velocity等

    三 springMvc:
    A(2.5版+spring注解)配置:
    1 复制spring相关jar包到web-inf/lib里面
    2 web.xml新增如下:
    <!--   Spring 容器启动监听器 -->
    <listener>
      <listener-class>
        org.springframework.web.context.ContextLoaderListener
      </listener-class>
    </listener>

    <!--   Spring MVC 的 Servlet ,它将加载 WEB-INF/annomvc-servlet.xml 的配置文件,以启动 Spring MVC 模块
      -->
    - <servlet>
      <servlet-name>annomvc</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
      </servlet>
    - <servlet-mapping>
      <servlet-name>annomvc</servlet-name>
      <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    [这里spring回根据servlet-name的值(annomvc)去加载(annomvc).servlet.xml]

    注解1:
    在web-inf/新建annomvc-servlet.xml里面新增如下:

    <!--:对 web 包中的所有类进行扫描,以完成 Bean 创建和自动依赖注入的功能 -->
      <context:component-scan base-package="com.controller" />
    这样就会自动扫描controller包下面的所有类

    <!--:对模型视图名称的解析,即在模型视图名称添加前后缀  -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/test/" p:suffix=".jsp" />

    3 这样你在com.controller下面新建一类Test类
    @Controller
    @RequestMapping("/test.do")
    public class Test{
        @RequestMapping(params="method=show")
    public String show(User user,ModelMap model){
    System.out.println(“calling...”);

    }
    }
    这样当页面有请求,例如action="test.do?method=show"时就会调用Test类中的show方法. 是不是简化了很多..

    注意:需要使用spring注解时还需要在配置文件中加上相应的xml的schema验证

    B流程:
    spring mvc请所有的请求都提交给在web.xml中配置的DispatcherServlet,由它查询一个或多个HandlerMapping,找到处理请 求的Controller,并且将请求提交给这个类。
    Controller进行业务逻辑处理后,会返回一个ModelAndView
    Dispathcher查询一个或多个 ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 ,视图对象负责渲染返回给客户端。
    C 特性:
    1 线程模式:单例模式,效率较好.
    2 基于方法级别的拦截,而不是基于类。更细粒度的灵活控制
    3 通过注解简化了很多配置,但同时在代码中增加了和业务不相干的代码.
    [并不是所有项目都适合通过注解,虽然可以简化繁琐的配置,但是对于项目经常需要改动时,有可能需要更改代码并重新编译后才能使之生效,而配置文 件的更改可以自动服务器发现,及时更新]

    总结:
    这里可看出这几个框架大致有哪些异同,可以根据项目来适当选择.个人感觉springmvc 这的不错,struts2 回归从单例模式回归.每次都是新的实例.+ 项目拦截器存在过多等问题,感觉效率不是很好. springmvc 则提供的最简化的请求处理映射,能极大提高项目效率.
    【曾看到过一个做测试的哥们说,做并发压力测试,struts2每秒到达300左右,springmvc到达了2000/s.】

    总之.根据项目而选择所需要架构.
    下次有机会把我springmvc(注解) + spring +hibernate小demo分享下,希望有经验的拍砖并指点下. over。

    javaeye另存一份: http://maomaolingyu.javaeye.com/blog/691693

    展开全文
  • JavaEE

    2020-12-30 17:12:24
    web视图层 web,servlet,controller service业务层 serviceservice.impl service接口包service接口实现类 dao持久层 daodao.impl dao接口包dao接口实现类 实体bean对象 pojo,entity,bean JavaBean类 测试包 ...

    JavaEE

    一:JavaEE三层架构

    在这里插入图片描述

    二:分层

    分层的目的是为了解耦,解耦就是为了降低代码的耦合度,方便项目后期的维护和升级。

    层次 描述
    web视图层 web,servlet,controller
    service业务层 service
    service.impl
    service接口包
    service接口实现类
    dao持久层 dao
    dao.impl
    dao接口包
    dao接口实现类
    实体bean对象 pojo,entity,bean JavaBean类
    测试包 test,junit
    工具类 utils
    展开全文
  • 导包: applicationContext-mvc....web.xml <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee ...

    导包:
    在这里插入图片描述

    applicationContext-mvc.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     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">
     <bean id="/hello.do" class="cn.itsource.controller.HelloController"></bean>
     <!-- mvc静态资源放行 -->
     <mvc:default-servlet-handler/>
     <!-- 扫描包路径 -->
     <context:component-scan base-package="cn.itsource"></context:component-scan>
     <!-- 开启spring对mvc的支持 -->
     <mvc:annotation-driven></mvc:annotation-driven>
     <!-- 视图解析器 对返回值解析 -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/"></property>
      <property name="suffix" value=".jsp"></property>
     </bean>
    </beans>

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     id="WebApp_ID" version="3.1">
     <display-name>day39-springmvc2</display-name>
     <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>default.html</welcome-file>
      <welcome-file>default.htm</welcome-file>
      <welcome-file>default.jsp</welcome-file>
     </welcome-file-list>
     <!-- 主分发器 -->
     <servlet>
      <servlet-name>DispatcherServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- 初始参数 上下文配置 -->
      <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:applicationContext-mvc.xml</param-value>
      </init-param>
      <!-- 设置预加载 -->
      <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>
     <!--   过滤器可自建<filter>
       <filter-name>EncodingFilter</filter-name>
       <filter-class>cn.itsource.filter.EncodingFilter</filter-class>
      </filter>
      <filter-mapping>
       <filter-name>EncodingFilter</filter-name>
       <url-pattern>/*</url-pattern>
      </filter-mapping> -->
    </web-app>
    展开全文
  • 目录结构 ...<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee ...
        

    目录结构

    7925105-3076b79a72829752.png
    image.png

    pom

    <?xml version="1.0" encoding="UTF-8"?>
    
    <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/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>taotao-manager</artifactId>
            <groupId>com.taotao</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>taotao-manager-web</artifactId>
        <packaging>war</packaging>
    
        <name>taotao-manager-web Maven Webapp</name>
        <!-- FIXME change it to the project's website -->
        <url>http://www.example.com</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.7</maven.compiler.source>
            <maven.compiler.target>1.7</maven.compiler.target>
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>com.taotao</groupId>
                <artifactId>taotao-manager-service</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
    
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
    
    
    
            <!-- 标签-->
    
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jsp-api</artifactId>
    
                <scope>provided</scope>
            </dependency>
    
    
            <!-- 文件上传组件 -->
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
    
    
    
        </dependencies>
    
        <build>
            <finalName>taotao-manager-web</finalName>
            <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
                <plugins>
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.0.0</version>
                    </plugin>
                    <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.0.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.7.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.20.1</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>3.2.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>2.5.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.8.2</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </project>
    
    

    web.xml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
    
      <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j2.xml</param-value>
      </context-param>
    
      <!-- log4j2-begin -->
      <listener>
        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
      </listener>
    
      <filter>
        <filter-name>log4jServletFilter</filter-name>
        <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>log4jServletFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
      </filter-mapping>
    
    
      <!-- log4j2-end -->
      <!-- end -->
    
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/spring/applicationContext*.xml</param-value>
      </context-param>
    
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    
    
      <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-value>
        </init-param>
      </filter>
    
      <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    
    
    
      <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:/spring/springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
    
    
    
      <display-name>springmvc</display-name>
    
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    
    </web-app>
    

    配置文件部分

    因为上几个层都是作为jar包的形式支持web层 ,所以所有配置文件都要在web层配置。

    mybatis

    
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <settings>
            <setting name="logImpl" value="LOG4J2" />
        </settings>
    
    </configuration>
    

    jdbc

    这里uname一定不能换成username ,否则会被替换成administrator,导致数据库连接账号密码错误(很坑,正常运行没有提示,只能去看tomcat log日志)

    
    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/boolib
    uname=root
    password=admin
    
    

    dao层 -applicationContext.xml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
           xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
    
        <context:property-placeholder location="classpath:properties/jdbc.properties"/>
    
        <!-- 4.加载数据源 -->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${driver}"></property>
            <property name="url" value="${url}"></property>
            <property name="username" value="${uname}"></property>
            <property name="password" value="${password}"></property>
        </bean>
    
        <!-- 5.创建SqlSessionFactory[配置数据源/读取核心配置文件/读取映射文件]-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <property name="configLocation" value="classpath:mybaits/SqlMapConfig.xml"></property>
        </bean>
    
        <!-- 6.接口代理模式:根据指定接口的位置去自动实例化对象 -->
        <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.taotao.mapper"></property>
            <!--<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"></property>-->
        </bean>
    
    
    </beans>
    

    service层-applicationContext-service.xml

    用来扫描所有service注解类 处理

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
           xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
    
    
        <!-- 包扫描器,扫描带@Service注解的类 -->
        <context:component-scan base-package="com.taotao.service"></context:component-scan>
    
    
    </beans>
    

    事务管理器 -applicationContext-trans.xml

    用来处理事务,切面 ,目前没有使用注解掉了

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
           xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
    
    
        <!--&lt;!&ndash; 事务管理器 &ndash;&gt;-->
        <!--<bean id="transactionManager"-->
              <!--class="org.springframework.jdbc.datasource.DataSourceTransactionManager">-->
            <!--&lt;!&ndash; 数据源 &ndash;&gt;-->
            <!--<property name="dataSource" ref="dataSource" />-->
        <!--</bean>-->
        <!--&lt;!&ndash; 通知 &ndash;&gt;-->
        <!--<tx:advice id="txAdvice" transaction-manager="transactionManager">-->
            <!--<tx:attributes>-->
                <!--&lt;!&ndash; 传播行为 &ndash;&gt;-->
                <!--<tx:method name="save*" propagation="REQUIRED" />-->
                <!--<tx:method name="insert*" propagation="REQUIRED" />-->
                <!--<tx:method name="add*" propagation="REQUIRED" />-->
                <!--<tx:method name="create*" propagation="REQUIRED" />-->
                <!--<tx:method name="delete*" propagation="REQUIRED" />-->
                <!--<tx:method name="update*" propagation="REQUIRED" />-->
                <!--<tx:method name="find*" propagation="SUPPORTS" read-only="true" />-->
              <!--&lt;!&ndash;  <tx:method name="select*" propagation="SUPPORTS" read-only="true" />&ndash;&gt;-->
                <!--<tx:method name="get*" propagation="SUPPORTS" read-only="true" />-->
            <!--</tx:attributes>-->
        <!--</tx:advice>-->
        <!--&lt;!&ndash; 切面 &ndash;&gt;-->
        <!--<aop:config>-->
            <!--<aop:advisor advice-ref="txAdvice"-->
                         <!--pointcut="execution(* com.taotao.service.*.*(..))" />-->
        <!--</aop:config>-->
    
    </beans>
    

    视图层 - springmvc.xml

    
    
    <?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:p="http://www.springframework.org/schema/p"
           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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!-- 配置包扫描器 -->
        <context:component-scan base-package="com.taotao.controller"></context:component-scan>
    
        <!-- 配置注解驱动 -->
        <mvc:annotation-driven/>
    
        <!-- 视图解析器 -->
        <bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
    
    
    
    </beans>
    

    配置文件

    log4j2 (bug未修复)

    
    <?xml version="1.0" encoding="utf-8" ?>
    <Configuration status="off" monitorInterval="1800">
        <properties>
            <property name="LOG_HOME">e:/error</property>
            <property name="ERROR_LOG_FILE_NAME">error</property>
        </properties>
    
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d %-5p (%F:%L) - %m%n" />
            </Console>
    
    
            <RollingRandomAccessFile name="ErrorLog"
                                     fileName="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log"
                                     filePattern="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log.%d{yyyy-MM-dd}.gz">
                <PatternLayout pattern="%d %-5p (%F:%L) - %m%n"/>
                <Policies>
                    <TimeBasedTriggeringPolicy/>
                    <SizeBasedTriggeringPolicy size="100MB"/>
                </Policies>
                <DefaultRolloverStrategy max="20"/>
            </RollingRandomAccessFile>
        </Appenders>
    
        <Loggers>
            <!--
    
            <logger name="org.springframework.core" level="info"/>
            <logger name="org.springframework.beans" level="info"/>
            <logger name="org.springframework.context" level="info"/>
            <logger name="org.springframework.web" level="info"/>
            <logger name="org.newcih" level="error" includeLocation="true" additivity="false">
                <appender-ref ref="ErrorLog"/>
                <appender-ref ref="Console"/>
            </logger>
            -->
    
    
            <root level="error">
                <appender-ref ref="ErrorLog"/>
                <appender-ref ref="Console"/>
            </root>
    
    
        </Loggers>
    </Configuration>
    
    展开全文
  • http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > Java+Thymeleaf示例程序的准备工作 (本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客: http://blog.csdn.net/zixiao217 ,如在其他平台...
  • JAVAEE

    2017-09-21 18:55:33
    JSP(Java Server Page)是JavaEE规范中的Web组件,用来编写动态页面; JSP运行在服务器端,本质是Servlet; JSP文件以.jsp为后缀,在Eclipse的工程目录中存在WebContent目录下; JSP文件可以直接在浏览器中访问;...
  • 第6讲:web.xml 目标 小结 思路(web....实现 <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 ...
  • 一,前言 上篇以CustomerServlet为例,对控制器层进行完善 通过依赖CustomerService,...有了优化后的服务层,控制器层和视图层的完善格外简单 至此,整套CustomerServlet开发完毕了,但还有另外4个Service等待着我们开发
  • 程序项目写了很多了, 总结一下   最初写的C/S模式的都没有过分包的习惯, 后来到了B/S的JSP/Servlet/JavaBean , 才知道了...视图层. 控制层, 业务逻辑层, 数据库访问层. 目前我知道的最合理的分层模式  
  • JavaEE体系架构

    2019-08-26 19:44:24
    JavaEE知识体系结构图 JavaEE体系结构图: 认识JavaEE完整体系架构(转载):作者详细解释了J2EE的体系结构,将各部分分类说明,非常详细。 http://www.jizhuomi.com/software/644.html  JavaEE是...
  • javaee学习笔记

    2017-04-17 13:12:33
     视图层  struts2、 Wicket、 Tapestry、 JSF1,2、 Spring MVC GWT ; - 中间层(容器层)  Spring、 Guic、 CDI Seasar(日系) ; DAO (数据库层) Hibernate、 MyBatis、 JPA、
  • JavaEE体系结构

    千次阅读 2018-09-06 15:37:30
    JavaEE是一套使用Java进行企业级Web应用开发的大家一致遵循的工业标准。 JavaEE平台提供了一个基于组件的方法来加快设计、开发、装配及部署企业应用程序。 相较于Microsoft的.NET,Sun公司的Java*E和一系列标准、...
  • JAVAEE知识

    2020-07-29 20:47:26
    javaEE知识总结】 一.servlet和CGI 1.什么是servlet? Servlet是server Applet的简称,称服务端小程序,是基于语言编写的服务端程序,Web容器或应用服务器实现了Servlet的标准所以Servlet需要运行在Web容器和应用...
  • javaEE 入门

    2017-03-07 10:57:00
    JavaEE将工作划分为不同的层次,包括如下三层:服务器端业务逻辑层,服务器端表示层、客户端表示层。  JavaEE API通常包含如下几个部分:  1、Servlet接口(JAVA Servlet API):处理外部请求,并将内容返回给...
  • JavaEE知识体系梳理

    万次阅读 多人点赞 2019-06-16 16:08:02
    JavaEE介绍: JavaEE的13种核心技术规范: 1、JDBC(Java Database)数据库连接 2、JNDI(Java Naming and Directory Interfaces)Java 的命名和目录接口 3、EJB(Enterprise JavaBean) 4、RMI(Remote Method...
  • JavaEE_Swagger

    2020-06-22 23:46:06
    1.学习目标 了解Swagger的作用和概念 了解前后端分离 在SpringBoot中集成Swagger 2.Swagger简介 前后端分离: Vue + SpringBoot 后端时代:前端只用管理...前端:前端控制层,视图层【前端团队】 前端后端如何交互:...
  • MVC与JavaEE

    2020-04-10 23:36:26
    MVC框架 简介:MVC是一种软件设计的方式,将软件的开发分为model(模型), view(视图), controller(控制器)三层进行...view层:视图层,是用于向客户端用户展示数据的视图。比如html页面、jsp页面 controll...
  • javaEE学习

    2019-07-23 16:09:36
    视图层(view) 代表用户交互界面,对于web应用来说,可以概括为html,jsp界面,有可能为XHTML、XML、Apple。 模型层 业务流程\状态处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。业务...
  • 四种JavaEE架构简介

    2019-04-02 17:35:25
    1、传统三层架构(all in one项目) 传统三层架构大致可以分为表现层,业务层和持久层...struts典型的mvc三层架构:模型层,视图层,控制层。 SpringMVC中的MVC指的是什么:当一个请求到达服务器时,由中央控制器Di...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,021
精华内容 808
关键字:

视图层javaee

java 订阅