spring系列---- spring-mvc1

环境:jdk,eclipse,tomcat,spring-mvc,commonlog

1.新建Dynamic Web Project项目。

2.导入springmvc包与commonlog两个包。

3.项目引入jsp-api,servlet-api两个包,在tomcat下。

4.web.xml配置(SpringMVC1WebContentWEB-INF)

<?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">
  <!-- 定义servlet -->
  <servlet>
    
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
        <!--指定路径-->
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/springmvc-config.xml</param-value>
      </init-param>    
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 让spring mvc的前端控制器拦截所有请求 -->
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
      
  </servlet-mapping>
</web-app>

5.springmvc-config.xml配置(SpringMVC1WebContentWEB-INF)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    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.2.xsd">
       <!-- 配置handle,映射“/hello”请求 -->
       <bean name="/hello" class="org.fkit.controller.HelloController" />
        <!-- 处理映射器将bean的name作为地址进行查找,需要在配置Handle指定地址 -->
       <bean
        class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
          <!-- SimpleControllerHandlerAdapter处理器适配器,所有处理适配器都要实现 HandlerAdapter接口-->
       <bean
        class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
       <!-- 视图解析器-->
       <bean 
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> 
</beans>

6.Controller层(SpringMVC1srcorgfkitcontroller)

package org.fkit.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloController implements Controller {
    public static final Log logger = LogFactory.getLog(HelloController.class);
    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("message", "Hello World!");
        mv.setViewName("/WEB-INF/content/index.jsp");
        return mv;
    }
}

7.index.jsp(SpringMVC1WebContentWEB-INFcontent)

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    ${requestScope.message}
</body>
</html>

8.运行ok。

运行网址:http://localhost:8080/SpringMVC1/hello  

9.问题总结

  @1.tomcat默认颜色为红色  解决为其他颜色以方便识别错误  

    原因:tomcat默认的日志输出按jdk中的System.err来输出,而System.err在eclipse中,以红色显示。

    解决方案:Eclipse 中 System.err 的显示颜色可以通过 Window --> Preference --> Run/Debug --> Console 的 Standard Error text color 进行更改。

  @2.tomcat一运行就警告 [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.e

    原因:eclipse配置错误

    解决方案:双击Servers里的Tomcat v7.0 at localhost,在Server Options选项选中Publish module contexts to separate XML files。

        @3.tomcat有一个还是红色 org.apache.catalina.startup.HostConfig deployDescriptor

    原因:linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。

    解决方案:找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为:securerandom.source=file:/dev/./urandom

   @4.eclipse快捷键注释  alt+/

        @5.org.springframework.web.servlet.DispatcherServlet noHandlerFound

    原因:访问路径有问题

原文地址:https://www.cnblogs.com/zxwbky/p/14010238.html