Java Web开发Spring MVC简单实例

一、使用IDEA构建Spring MVC工程的基本流程。

1、New Project——Spring——Spring MVC——(设置项目名,项目的位置)——然后Finish。IDEA会自动下载必要的 jar 包,构建好后项目结构如图:
Java Web开发Spring MVC简单实例_第1张图片

2、修改web.xml, 将元素的值改为 / ,表示拦截所有请求,并交由Spring MVC的后台控制器来处理。

3、编辑dispatcher-servlet.xml,与上面 web.xml 中的 元素配置的 dispatcher 对应,这是 Spring MVC 的映射配置文件(xxx-servlet.xml)。配置如下:


<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.xsd">

    <bean id="simpleUrlHandlerMapping"
          class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                
                <prop key="/hello">helloControllerprop>
            props>
        property>
    bean>
    <bean id="helloController" class="controller.HelloController">bean>
beans>

4、创建HelloController

在项目原文件中创建一个HelloController类(可以建一个包在再创建类),并实现org.springframework.web.servlet.mvc.Controller 接口。如果 javax.servlet 包找不到的话,可将本地 Tomcat 服务器的目录下lib文件夹下的 servlet-api.jar 包拷贝到工程lib文件夹下,并添加依赖(Project Structure——Modules——Dependencies)。

package controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;  // 需要导入依赖
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest,
                                      HttpServletResponse httpServletResponse) throws Exception {

        //Spring MVC 通过 ModelAndView 对象把模型和视图结合在一起
        ModelAndView mav = new ModelAndView("index.jsp");
        mav.addObject("message", "Hello Spring MVC");

        return mav;
    }
}

5、修改index.jsp,用El表达式显示 message 的内容.

<%@ page contentType="text/html;charset=UTF-8" language="java"
         pageEncoding="UTF-8" isELIgnored="false"%>

  
    $Title$
  
  
  <%--用El表达式显示 message 的内容。--%>
  

${message}

6、部署Tomcat环境

Run菜单——Edit Configurations——添加Tomcat Server(Local)——进行相关配置——添加 Deployment ——然后就可以Run工程了

7、启动服务器进行访问,在浏览器中输入地址 localhost:8080/hello,就能得到返回的内容了。

8、几个常见的问题:

Cannot start compilation: the output path is not specified for module “HelloSpringMVC”. Specify the output path in the Project Structure dialog.

原因是项目中此时没有指定class文件生成的路径,进行配置一下:Project Structure——Modules——Paths——Compile output(选择Use module compile output path,并进行相关设置)。

Error:java: 无效的源发行版: 12

原因是本机的JDK版本与项目的语言级别不同造成的,设置相同的jdk版本。Project Structure——Project——Project SDK 要和Project language level 版本一致,或者与Project Structure——Modules——Source(Language level 一致)

以上就基本实现了一个简单的Spring MVC demo,并且通过配置dispatcher进行拦截请求,通过dispatcher-servlet查询HandlerMapping并调用相应的Controller。然后将数据模型传递到视图层。整个项目都是通过xml配置完成的,下面可使用注解完成程序的配置(注解和xml的作用是等效的)。

二、使用注解配置Spring MVC

1、为HelloController 添加注解,使用@Controller 注解来声明控制器,使用@RequestMapping 注解进行方法映射。

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller
public class HelloController {

    @RequestMapping("/hello")
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest,
                                      HttpServletResponse httpServletResponse) throws Exception {

        //Spring MVC 通过 ModelAndView 对象把模型和视图结合在一起
        ModelAndView mav = new ModelAndView("index.jsp");
        mav.addObject("message", "Hello Spring MVC");

        return mav;
    }
}

2、取消之前dispatcher-servlet.xml 文件中配置,并增加一句组件扫描的配置:


<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"
       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">

    
    <context:component-scan base-package="controller"/>
beans>

重启服务器,项目仍然可以正常运行。以上就就算通过使用XML和注解进行Spring MVC项目的简单配置过程,现在大多项目比较提倡使用注解,主要原因是因为xml过于冗长,配置比较麻烦,而注解则简化了配置,使用起来也比较直观容易,能够提升开发效率。当然xml也有一些注解没有的优点,比如说xml类与类间的的松耦合,使类容易扩展和更换,在灵活性上xml要注解好很多。

三、实现一个简单登录页面

1、创建一个login.jsp页面,使用表单提交数据请求。form action="/param" role="form" method=post设置数据提交的目录方法。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录界面


欢迎登录

用户名:
密码:

2、在HelloController中创建一个doPost方法,并使用@RequestMapping("/param")注释。通过request.getParameter()方法获取提交的数据,并进行验证,输出返回对应的信息。

@RequestMapping("/param")
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws IOException{

        response.setContentType("text/html;charset=UTF-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        PrintWriter out = response.getWriter();

        if(username.equals("admin")&&password.equals("123456")){
            out.println("

登录成功!"+"

"
); } else{ out.println("

用户名或密码错误!"+"

"
); } out.flush(); out.close(); }

至此,基本上利用Spring MVC框架实现了简单的Java web demo,从项目环境的配置,Tomcat的部署,JSP和Servlet的控制跳转,以及Spring MVC的简单工作原理都简单的概括了。嗯,就这样,先熟悉一个基本流程,后续的业务逻辑等以后再慢慢去实现。

你可能感兴趣的:(Java,Web)