一:怎么使用springmvc:
在resource资源文件中新建springmvc核心配置文件其内容如下:
<context:component-scan base-package="com.ztb.controller"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
分别为包扫描和视图解析器
二:在web.xml文件中注册springmvc:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
新建jsp页面与controll类:
<a href="${pageContext.request.contextPath}/ztb.do">访问服务器</a>
@Controller
public class ActionController {
@RequestMapping("/ztb")
public String demo(){
System.out.println("服务器。。。");
return "main";
}
}
1DispatchServlet表示前置控制器,是整个springmvc的控制中心,用户发出请求,dispatchservlet接受请求并拦截请求
2.HandlerMapping为处理器映射。DispatchServlet调用,HandleMapping根据请求url查找Handler
3HandlerExecution表示具体的Handler,主要作用是根据url查找控制器
4HandlerExecution将解析后的信息传给DispatchServlet
5HandlerAadpter表示处理器适配器,按照特定的规则去执行Handler,Handler让具体的Controller执行
6Controller将具体的执行信息返回给HandlerAadpter,如ModelAndView
7HandlerAadpter将视图名或模型传递给DispatchServlet
8DispatchServlet调用视图解析器(ViewResolver)来解析HandlerAadpter传递的逻辑视图名
9视图解析器将解析的逻辑视图名传给DispatchServlet
10DispatchServlet根据视图解析器的视图结果,调用具体的视图
11最终展示给用户
二:区分post和get请求:
在页面端如下:
<form action="${pageContext.request.contextPath}/one.do" method="get">
<input type="submit" name="提交">
</form>
后端如下:
@RequestMapping(value = "/one",method = RequestMethod.GET)
public String demo1(){
System.out.println("get方法");
return "main";
}
@RequestMapping(value = "/one",method = RequestMethod.POST)
public String demo2(){
System.out.println("post方法");
return "main";
}
三:五种数据提交的方式:
1:单个提交数据
<form action="${pageContext.request.contextPath}/one.do">
姓名:<input name="myname"><br>
年龄:<input name="myage"><br>
<input type="submit" name="提交">
@RequestMapping("/one")
public String demo1(String myname,int myage) {
System.out.println(myname+myage);
return "main";
}
只要形参的名字与前端名字对应,就一定能取到数据
2:对象封装数据提交:
@RequestMapping("/two")
public String demo1(User user) {
System.out.println(user.getName()+user.getAge());
return "main";
}
<form action="${pageContext.request.contextPath}/two.do">
姓名:<input name="name"><br>
年龄:<input name="age"><br>
<input type="submit" name="提交">
</form>
会自动创建对象,要注意前端提交的名称要和实体类中的成员变量的名称一致
3:占位符提交数据:
仅限于超链接或地址栏提交数据,他是一杠一值,一杠一大括号,使用注解来解析
@RequestMapping("/three/{name}/{age}")
public String demo2(
@PathVariable
String name,
@PathVariable
int age) {
System.out.println(name+age);
return "main";
}
<a href="${pageContext.request.contextPath}/three/张三/22.do">动态提交</a>
4:隐射名称不一致:
前端方法的名称和后端的形参名称不一致,使用注解来解析:
@RequestMapping("/four")
public String demo3(
@RequestParam("name")
String uname,
@RequestParam("age")
String ugae) {
System.out.println(ugae+uname);
return "main";
}
<form action="${pageContext.request.contextPath}/four.do">
姓名:<input name="name"><br>
年龄:<input name="age"><br>
<input type="submit" name="提交">
</form>
5:手工提取数据:
@RequestMapping("/five")
public String demo3(HttpServletRequest request) {
String name = request.getParameter("name");
int age =Integer.parseInt(request.getParameter("age"));
System.out.println(age+name);
return "main";
}
<form action="${pageContext.request.contextPath}/five.do">标签:return,String,springmvc,简单,视图,使用,println,main From: https://www.cnblogs.com/zhangtaibing/p/16598400.html
姓名:<input name="name"><br>
年龄:<input name="age"><br>
<input type="submit" name="提交">
</form>