• 使用IntelliJ IDEA开发SpringMVC网站


    转自https://my.oschina.net/gaussik/blog/385697

     
    1.安装jdk,maven和tomcat
     
    2.创建maven web项目
        Create New Project
     
     
    最后生成结果如下图,注意左侧部分
    上侧部分选择Auto-Import就好
     
    如果生成过慢,可以参看下面两篇文章:
     
    3.Maven自动导入jar包
    (1)选择Maven Repository,在里面选择需要的jar包,复制依赖添加进pom.xml
    (2)下面是别人给的部分
    <properties>
    <spring.version>4.2.6.RELEASE</spring.version>
    <hibernate.version>5.1.0.Final</hibernate.version>
    </properties>
    
     
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.2.5.RELEASE</version>
    </dependency>
    
     
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.5.RELEASE</version>
    </dependency>
    
     
    
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
    </dependency>
    
    <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.10.1.RELEASE</version>
    </dependency>
    
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>${hibernate.version}</version>
    </dependency>
    
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>${hibernate.version}</version>
    </dependency>
    
    <dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
    </dependency>
    
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    </dependency>
    
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
    </dependency>
    之所以用别人的,主要是担心版本不兼容的问题。
     
    在build中添加
    <build>
    <finalName>springmvcdemo</finalName>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
    <source>1.8</source>
    <target>1.8</target>
    </configuration>
    </plugin>
    </plugins>
    </build>
    4.进入Fire——Project Structure
     
    文件夹名为java,选择上方Mark as: Source,作为放java文件的地方。
     
    5.web.xml配置
    打开srcmainwebappWEB-INF下的web.xml文件,改成这个部分
    <web-app>
    
      <display-name>Archetype Created Web Application</display-name>
    
        <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>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>encodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
      <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
    </web-app>

    该servlet名为mvc-dispatcher(名称可修改),用于拦截请求(url-pattern为 / ,说明拦截所有请求),并交由Spring MVC的后台控制器来处理。这一项配置是必须的。

     为了能够处理中文的post请求,再配置一个encodingFilter,以避免post请求中文出现乱码情况。

    error:The content of element type "web-app" must match

    错误:The content of element type "web-app" must match "(icon ,display-
    name ,description ,distributable ,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-
    mapping*,session-config ,mime-mapping*,welcome-file-list ,error-page*,taglib*,resource-env-
    ref*,resource-ref*,security-constraint*,login-config ,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
    - No grammar constraints (DTD or XML schema) detected for the document.

    原因:文档内容标签顺序不符合web-app_2_3.dtd规范(我把filter放在servlet后面了)

    解决方案:严格按照提示上的顺序排列

    6. MVC框架有model、view、controller三部分组成。model一般为一些基本的Java Bean,view用于进行相应的页面显示,controller用于处理网站的请求。

    在srcmainjava中新建一个用于保存controller的package(com.euphe.controller),在里面创建一个java文件(MainController)

    @Controller
    public class MainController {
    
        @RequestMapping(value = "/",method = RequestMethod.GET)
        public String index(){
            return "index";
        }
    }

        (1)@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;

        (2)@RequestMapping()注解:用于定义一个请求映射,value为请求的url,值为 / 说明,该请求首页请求,method用以指定该请求类型,一般为get和post;

        (3)return "index":处理完该请求后返回的页面,此请求返回 index.jsp页面。

    回到mvc-dispatcher-servlet.xml,进行相关配置。

    首先加入component-scan标签,指明controller所在的包,并扫描其中的注解(最好不要复制,输入时按IDEA会在beans xmlns中添加相关内容)

    <!--指明 controller 所在包,并扫描其中的注解-->
        <context:component-scan base-package="com.gaussic.controller"/>
    
        <!-- 静态资源(js、image等)的访问 -->
        <mvc:default-servlet-handler/>
    
        <!-- 开启注解 -->
        <mvc:annotation-driven/>
    
        <!--ViewResolver 视图解析器-->
        <!--用于支持Servlet、JSP视图解析-->
        <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
            <property name="prefix" value="/WEB-INF/pages/"/>
            <property name="suffix" value=".jsp"/>
        </bean>

    我们删除 webapp 目录下的 index.jsp 文件,在WEB-INF目录下新建文件夹pages,再在pages目录下新建 index.jsp,并修改为如下所示:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    
        <title>SpringMVC Demo 首页</title>
    
        <!-- 新 Bootstrap 核心 CSS 文件 -->
        <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
    
        <!--[if lt IE 9]>
        <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
    </head>
    <body>
    <h1>这里是SpringMVC Demo首页</h1>
    
    <h3>出现此页面,说明配置成功。</h3>
    
    <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
    <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
    
    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    </body>
    </html>

    这里使用了Bootstrap的CDN加速服务,如果要使用本地的Bootstrap,请前往Bootstrap官网下载,并放在 webapp 目录下,然后引入到 index.jsp 中。

     7.配置 Tomcat 
     Run —— Edit Configurations —— + —— Tomcat Server —— Local
     
    在配置好tomcat的路径后,如下图所示,发现依然存在警告,且左方的Tomcat7图标上有一个错误标记,说明还没有配置完全:
     
     
    点击 Deployment,再点击右边的”+“号,添加一个Artifact:
      

     

     
    完成后如图:
     

     
    运行后出现网站。
     
     
  • 相关阅读:
    C#命名约定:PascalCase和camelCase
    Windows8 App 四大名著完整本 隐私保护声明
    C#-编码习惯
    [转]C#之Console.Write()和Console.Read()及Console.Readline()的问题
    通过JavaScript动态输入计算
    在VS2008中加入ExtJS智能提示—>(方法一)
    在VS2008中加入ExtJS智能提示—>(方法二)
    (一)javascript面向对象:(1)类
    上证指数波浪分析2013/03/12
    Springsecurity源码Filter之HeaderWriterFilter(十二)
  • 原文地址:https://www.cnblogs.com/xym4869/p/8472990.html
Copyright © 2020-2023  润新知