SPRINGMYBATIS01 Unit04:实战技巧 、 登录
来源:互联网 发布:名侦探柯南手表淘宝 编辑:程序博客网 时间:2024/06/03 13:20
1. 基于注解的SpringMVC应用
(1)编程步骤
step1.导包。spring-webmvcstep2.添加spring配置文件。step3.配置DispatcherServlet。step4.写Controller
step5.写jspstep6.在配置文件当中,添加ViewResolver配置, 添加组件扫描,添加MVC注解扫描。
(2).读取请求参数值
1)方式一 通过request提供的方法
2) 方式二 通过@RequestParam注解
3) 方式三 通过javabean
step1. 先写一个java类
step2. 将该类作为方法参数
(3)向页面传值
1)方式一 将数据绑订到request
2)方式二 返回ModelAndView
3)方式三 将数据添加到ModelMap
4)方式四 将数据绑订到session
(4)重定向
1)方法的返回值是String
比如 return "redirect:toIndex.do";
2)方法的返回值是ModelAndView
比如 RedirectView rv = new RedirectView("toIndex.do"); ModelAndView mav = new ModelAndView(rv);
代码演示:
/springmvc-day02/pom.xml
<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"> <modelVersion>4.0.0</modelVersion> <groupId>welkin</groupId> <artifactId>springmvc-day02</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.8.RELEASE</version> </dependency> </dependencies></project>
/springmvc-day02/src/main/java/controller
adminParam.java
package controller;/* * 用于封装请求参数值 * 属性名与请求参数名一致 * 注: * 名称要一样,类型要匹配(会做类型转换,比如将字符串转换成int) * 提供相应的get/set方法 */public class adminParam { private String adminCode; private String pwd; public String getAdminCode() { return adminCode; } public void setAdminCode(String adminCode) { this.adminCode = adminCode; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; }}
HelloController.java
package controller;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.view.RedirectView;/** * 处理器类 * 1.不用实现Controller * 2.方法名不做要求,返回值可以是ModelAndView,也可以是String * 3.可以添加多个方法 * 4.使用@Controller * 5.可以在方法前或者类前添加@RequestMapping * http://ip:port/springmvc-day02/hello.do */@Controllerpublic class HelloController { @RequestMapping("/hello.do") public String hello() { System.out.println("hello()"); // 返回视图名 return "hello"; } @RequestMapping("/toLogin.do") public String toLogin() { System.out.println("toLogin()"); return "login"; } @RequestMapping("/login.do") /* * DispatcherServlet在调用处理器的方法之前,会利用Java反射机制分析方法的结构,比如这儿,通过分析会将请求对象传过来(了解)。 */ public String login(HttpServletRequest request) { System.out.println("login()"); String adminCode = request.getParameter("adminCode"); System.out.println("adminCode:" + adminCode); return "index"; } @RequestMapping("/login2.do") /* * DistpatcherServlet调用处理器的方法之前,会分析方法的结构。这儿,会调用request对象的方法,先获得参数值,然后赋给对应的形参。(了解) * 如果不一致,要@RequestParam注解 */ public String login2(String adminCode,@RequestParam("pwd") String pwd){ System.out.println("login2()"); System.out.println("adminCode:"+adminCode+"\n"+"pwd:"+pwd); return "index"; } @RequestMapping("/login3.do") /* * DistpatcherServlet会将AdminParam对象创建好(会将请求参数值赋给相应的属性)。 */ public String login3(adminParam ap){ System.out.println("login3()"); String adminCode = ap.getAdminCode(); String pwd = ap.getPwd(); System.out.println("adminCode:"+adminCode+"\n"+"pwd:"+pwd); return "index"; } @RequestMapping("/login4.do") public String login4(adminParam ap,HttpServletRequest request){ System.out.println("login4()"); String adminCode = ap.getAdminCode(); request.setAttribute("adminCode", adminCode); //默认情况下,DistpatcherServlet会使用转发。 return "index"; } @RequestMapping("/login5.do") public ModelAndView login5(adminParam ap){ System.out.println("login5()"); String adminCode = ap.getAdminCode(); //step1.将数据添加到Map对象里面 Map<String,Object> data = new HashMap<String, Object>(); //相当于执行了request.setAttribute data.put("adminCode", adminCode); //step2.将Map对象添加到ModelAndView ModelAndView mav = new ModelAndView("index",data); return mav; } @RequestMapping("/login6.do") public String login6(adminParam ap,ModelMap mm){ System.out.println("login6()"); String adminCode = ap.getAdminCode(); //相当于执行了request.setAttribute mm.addAttribute("adminCode",adminCode); return "index"; } @RequestMapping("/login7.do") public String login7(adminParam ap,HttpSession session){ System.out.println("login7()"); String adminCode = ap.getAdminCode(); session.setAttribute("adminCode", adminCode); return "index"; } @RequestMapping("/login8") public String login8(){ System.out.println("login8()"); return "redirect:toIndex.do"; } @RequestMapping("/toIndex") public String toIndex(){ System.out.println("toIndex()"); return "index"; } @RequestMapping("/login9.do") public ModelAndView login9(){ System.out.println("login9()"); RedirectView rv = new RedirectView("toIndex.do"); ModelAndView mav = new ModelAndView(rv); return mav; } @RequestMapping("/toBmi.do") public String toBmi() { System.out.println("toBmi()"); return "bmi"; } @RequestMapping("/bmi.do") public String bmi(HttpServletRequest request) { System.out.println("bmi()"); String height = request.getParameter("height"); String weight = request.getParameter("weight"); double bmi = Double.parseDouble(weight) / Double.parseDouble(height) / Double.parseDouble(height); String status = "正常"; if (bmi < 19) { status = "过轻"; } if (bmi > 25) { status = "过重"; } request.setAttribute("status", status); request.setAttribute("bmi", bmi); return "view"; }}
/springmvc-day02/src/main/resources/spring-mvc.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" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd"> <!-- 配置组件扫描 --> <context:component-scan base-package="controller"></context:component-scan> <!-- 配置MVC注解扫描 --> <mvc:annotation-driven /> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/" /> <property name="suffix" value=".jsp" /> </bean></beans>
/springmvc-day02/src/main/webapp/WEB-INF
bmi.jsp
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><html><head></head><body style="font-size: 30px;"> <form action="bmi.do" method="post"> 身高(米):<input name="height" /><br /> 体重(公斤):<input name="weight" /><br /> <br /> <input type="submit" value="确定" /> </form></body></html>
hello.jsp
<h1>hello,SpringMVC!</h1>
index.jsp
<h1>index</h1>adminCode:${adminCode }
login.jsp
<%@page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%><html> <head></head> <body style="font-size:30px;"> <form action="login9.do" method="post"> 账号:<input name="adminCode"/><br/> 密码:<input type="password" name="pwd"/><br/> <input type="submit" value="登录"/> </form> </body></html>
view.jsp
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><html><head></head><body style="font-size: 30px;">BMI指数:${bmi } 状态:${status}</body></html>
web.xml
<?xml version="1.0" encoding="UTF-8"?><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 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <!-- DispatcherServlet的初始化方法会启动 spring容器,contextConfigLocation用 来指定spring配置文件的位置。 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern></servlet-mapping></web-app>
阅读全文
0 0
- SPRINGMYBATIS01 Unit04:实战技巧 、 登录
- SPRINGMYBATIS01 Unit05: 实战技巧 、 资费列表 、 拦截器
- SSH Unit04
- 从【状态模式】解析App登录功能实战技巧
- SE02 Unit04 多线程基础
- 云笔记项目 Unit04
- ThinkPHP实战之登录
- CAS单点登录实战
- Cookie登录项目实战
- 实战VMware虚拟机技巧
- 实战域名抢注技巧
- 常用技术指标实战技巧
- KDJ 技术指标实战技巧
- MongoDB索引实战技巧
- Android实战技巧:Handler
- Android实战技巧:Dialog
- Android实战技巧:Handler
- Linux渗透技巧+实战
- GBDT算法整理
- 11th 【棋盘dp 动态规划】捡钱
- PowerDesigner中,修改column的name和Code同步问题
- 网络端口扫描工具
- apt-get常用命令
- SPRINGMYBATIS01 Unit04:实战技巧 、 登录
- Linux下的压缩zip,解压缩unzip命令详解及实例
- 抓取android log
- SDR NB-IoT进展
- Oracle中ROWNUM伪列和ROWID伪列的用法与区别
- WMI中的SQL,WQL简明教程系列5:工具,命名空间,路径
- FormStartPosition 枚举
- java.nio.channels.FileChannel中lock()与tryLock()方法的区别(Android Studio代码环境)
- springboot之properties