《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
return “result”;
}
④表单对应的实体类包含级联属性
public class Student {
private Integer studentId;
private String studentName;
private School school;
private List subjectList;
private Subject[] subjectArray;
private Set teacherSet;
private Map<String,String> scoreMap;
{
//在各种常用数据类型中,只有Set类型需要提前初始化
//并且要按照表单将要提交的对象数量进行初始化
//Set类型使用非常不便,要尽可能避免使用Set
teacherSet = new HashSet<>();
teacherSet.add(new Teacher());
teacherSet.add(new Teacher());
teacherSet.add(new Teacher());
}
handler方法
@RequestMapping(“/get/param/multi/value”)
public String getParamOneNameMultiValue(@RequestParam(“team”) List teamList) {
for (String team : teamList) {
System.out.println(team);
}
return “target”;
}
@RequestMapping(“/get/param/entity”)
public String getParamEntity(Employee employee) {
System.out.println(employee);
return “target”;
}
//@RequestMapping(“/get/param/entity”)
public String getParamEntityParam(@RequestParam(“empName”) String empName) {
System.out.println(“empName=”+empName);
return “target”;
}
@RequestMapping(“/get/param/fuza”)
public String getParamFuza(Student student) {
System.out.println(“StudentId=”+student.getStudentId());
System.out.println(“StudentName=”+student.getStudentName());
System.out.println(“SchoolId=”+student.getSchool().getSchoolId());
System.out.println(“SchoolName=”+student.getSchool().getSchoolName());
List subjectList = student.getSubjectList();
for (Subject subject : subjectList) {
System.out.println(“科目名称=”+subject.getSubjectName());
}
Subject[] subjectArray = student.getSubjectArray();
for (Subject subject : subjectArray) {
System.out.println(“科目名称=”+subject.getSubjectName());
}
Set teacherSet = student.getTeacherSet();
for (Teacher teacher : teacherSet) {
System.out.println(“老师姓名=”+teacher.getTeacherName());
}
Map<String, String> scoreMap = student.getScoreMap();
Set keySet = scoreMap.keySet();
for (String key : keySet) {
String value = scoreMap.get(key);
System.out.println(key+“:”+value);
}
return “target”;
}
提交数据的表单
学生编号:
学生姓名:
学校编号:
学校名称:
科目1名称:
科目2名称:
科目3名称:
科目4名称:
科目5名称:
科目6名称:
老师姓名:
老师姓名:
老师姓名:
考试成绩:
考试成绩:
考试成绩:
考试成绩:
考试成绩:
编号:
姓名:
年龄:
工资:
请选择你最喜欢的球队:
德国
巴西
意大利
中国
韩国
web.xml配置,解决字符乱码
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
CharacterEncodingFilter
/*
页面跳转控制
1.转发指令
@RequestMapping(“/testForward”)
public String testForward() {
return “forward:/target.jsp”;
}
forward:/target.jsp
表示方法执行完成后转发到/target.jsp。想一想有了视图解析器拼接字符串指定转发页面之后forward是否多余呢?
2.重定向指令
@RequestMapping(“/testRedirect”)
public String testRedirect() {
return “redirect:/target.jsp”;
}
redirect:/target.jsp
表示方法执行完成后重定向到/target.jsp。这里重定向中使用的路径和我们以前的写法不同,没有以Web应用名称开头,这是因为SpringMVC会替我们加上。
3.使用原生对象完成转发
@RequestMapping(“/testForward”)
public void testForward2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher(“/target.jsp”).forward(request, response);
}
你看,使用原生request对象执行转发后,handler方法的返回值就必须是void,意思是我们自己指定了响应方式,不需要SpringMVC再进行处理了。一个请求只能有一个响应,不能在handler方法里面给一个,然后SpringMVC框架再给一个。
4.使用原生对象完成重定向
@RequestMapping(“/testRedirect”)
public void testRedirect2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect(request.getContextPath()+“/target.jsp”);
}
使用原生response对象执行重定向后,handler方法的返回值同样需要设置为void,原因同上。
最后
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect(request.getContextPath()+“/target.jsp”);
}
使用原生response对象执行重定向后,handler方法的返回值同样需要设置为void,原因同上。
最后
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友
[外链图片转存中…(img-av1K7MSN-1714751947216)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!