Java Web开发Spring MVC简单实例

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

1、New Project——Spring——Spring MVC——(设置项目名,项目的位置)——然后Finish。IDEA会自动下载必要的 jar 包,构建好后项目结构如图:
在这里插入图片描述

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

3、编辑dispatcher-servlet.xml,与上面 web.xml 中的 <servlet-name> 元素配置的 dispatcher 对应,这是 Spring MVC 的映射配置文件(xxx-servlet.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"
       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>
                <!-- /hello 路径的请求交给 id 为 helloController 的控制器处理-->
                <prop key="/hello">helloController</prop>
            </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"%>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <%--用El表达式显示 message 的内容。--%>
  <h1>${message}</h1>
  </body>
</html>

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 文件中配置,并增加一句组件扫描的配置:

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

    <!-- 扫描controller下的组件 -->
    <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" %>
<html>
<head>
    <title>登录界面</title>
</head>
<body>
<h2 align="center">欢迎登录</h2>
<form action="/param" role="form" method=post>
<table align="center">
    <tr>
        <td>用户名:</td><td><input type=text name=username /></td>
    </tr>
    <tr>
        <td>密码:</td><td><input type=password name=password /></td>
    </tr>

    <tr>
        <td colspan="2",align="center">
            <input type="submit" value="submit" />
            <input type="reset" value="reset" />
        </td>
    </tr>
</table>
</form>
</body>
</html>

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("<p>登录成功!"+"</p>");
        }
        else{
            out.println("<p>用户名或密码错误!"+"</p>");
        }
        out.flush();
        out.close();
    }

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值