SpringMVC实现操作的第二种方式

一:

运行效果:

点击提交之后显示效果

二:

(1).web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>
  <!-- 解决post请求中文乱码问题 -->
  <filter>
      <filter-name>CharaterEncodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
          <param-name>endcoding</param-name>
          <param-value>utf-8</param-value>
      </init-param>
  </filter>
  <filter-mapping>
      <filter-name>CharaterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

  <servlet>
      <!--  配置前端过滤器 -->
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <!-- 表示容器再启动的时候立即记载Servlet -->
    <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:springmvc-servlet.xml</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

(2)springmvc-servlet.xml(都是第二种的方法:标有数字2的)

<?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd" >

    <!-- 配置处理器Handle-->
    <bean name="/firstController" class="com.inspur.controller.FirstController">
    </bean>

    <!-- Handler2 -->
    <bean id="login" class="com.inspur.controller.LoginController"></bean>

    <!-- 处理映射器,将处理器Handle的name作为url进行查找 -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

    <!-- Handler处理方法2 -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/login1">login</prop>
            </props>
        </property>
    </bean>

    <!-- 处理适配器2 -->
    <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="ViewClass" value="org.springframework.web.servlet.view.JstlView"></property>
        <!-- <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property> -->
    </bean>

</beans>

(3)LoginController.java

package com.inspur.controller;

import java.io.IOException;

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

import org.springframework.web.HttpRequestHandler;

public class LoginController implements HttpRequestHandler {

    @Override
    public void handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        request.setAttribute("username", username);
        request.setAttribute("password", password);

        //请求成功,登陆login.jsp页面,获取uername和password的值
        request.getRequestDispatcher("/login.jsp").forward(request, response);

    }

}

(4)Login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘login.jsp‘ starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
    <form action="login1" method="post">
         用户名: <input type="text" name="username">${username }<br>
         密码:<input type="text" name="password">${password }<br>
         <input type="submit" value="提交">
    </form>
  </body>
</html>

三:运行流程

1.输入jsp页面的路径:http://localhost:8080/SpringMVCTest01/login.jsp

2.web.xml前端控制器DispacherServlet会拦截浏览器

3.调用spring-servlet.xml,查找login。这时候找

4.prop的login会找到对应id为login的bean

5.调用bean里面的LoginController控制器

原文地址:https://www.cnblogs.com/sunxiaoyan/p/9182148.html

时间: 2024-10-31 01:20:36

SpringMVC实现操作的第二种方式的相关文章

js最基础知识回顾2(函数传参,操作属性的第二种方式,提取行间事件,操作一组元素,this,焦点问题和鼠标按下抬起,选项卡)

一.函数传参     1.函数传参:参数就是占位符----函数里定不下来的东西 a. var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 f(); }; a(a1); b.  function skip(skipPath){  //换肤 var oLink1 = document.getElementById('link1'); oLink1.href=skipPath; } c.   function setStyle(na

创建对象的第二种方式:克隆clone,要实现Cloneable接口

1 ackage com.wisezone.clone; 2 3 /** 4 * 空接口: 5 * 标识,告诉JVM,通行 6 * 1.克隆 7 * 2.序列化 8 * 9 * 创建对象的第二种方式:克隆clone,要实现Cloneable 10 * @author 王东海 11 * @2017年4月15日 12 */ 13 public class TestClone implements Cloneable 14 { 15 public String name; 16 17 public s

Java创建线程的第二种方式:实现runable接口

/*需求:简单的卖票程序多个窗口买票 创建线程的第二种方式:实现runable接口 *//*步骤1.定义类实现Runable接口2.覆盖Runable接口中的run方法    将线程要运行的代码存放在该run方法中 3.通过Thread类建立线程对象4.将Runable接口的子类对象作为实际参数传递给Thread类的构造函数  为什么要将Runable接口的子类对象传递给Thread的构造函数.  因为,自定义的run方法所属的对象是Runable接口的子类对象  所以要让线程去指定对象的Run

创建一对多表结构实例 /操作的三种方式

例 1.注册App01  完成各项配置 2. 写完后自动生成一个id自增列(主键) 如果不想生成 自己写 创建两张表 3.执行创建语句 (其中还进行了一个小修改) 4.按照之前的方法 打开数据库 并输入数据 5.修改表结构 法一: 在更新时 遇到选择 因为已经存入数据 新建列默认不能为Null 默认为sa 注意输入的是字符串 刷新 法二: 法三: ====================== 接下来进行view 应该先看到业务线  再看到主机 1.urls 注意:如果同时有 bussiness

创建线程的第二种方式------实现Runnable接口的方式

package cn.itcast.demo16.Demo07.Runnable; /** * @author newcityman * @date 2019/7/22 - 23:17 */public class RunnableImpl implements Runnable { @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getN

Spring实现初始化和销毁bean之前进行的操作,三种方式

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二种是:通过 在xml中定义init-method 和  destory-method方法 第三种是:通过bean实现InitializingBean和 DisposableBean接口 下面演示通过  @PostConstruct 和 @PreDestory 1:定义相关的实现类: [java] v

关于整合spring+mybatis 第二种方式

和第一种方式一样的步骤,不过bean.xml中有些许差异 <!-- 配置sqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property&g

springMVC记录系统日志的几种方式

在项目开发中往往需要记录一些用户操作的系统日志到数据库,而不仅仅是记录在文件中或者log4j上.     第一种是最简单最原始也是最繁琐最笨的办法:即每个需要记录的操作入口方法中去调用新增日志的接口. 第二种是采用spring的拦截器进行方法拦截:     建立一个拦截器:       <mvc:interceptor>            <mvc:mapping path="/**"/>           <bean class="com

实现键盘录入的第二种方式。。。。。

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner; public class Demo01 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //两种方式实现键盘录入,推荐使用