尚学堂072天总结+spring-mvc

072天
行百里者半九十,想要在一个行业里成为顶尖人才,一定满足一万小时定律,要想学好JAVA,需要持之以恒不断地努力,每天都要勤思考+善于询问+解决问题!

知识温故而知新>>>>>>

JSP中的EL表达式

image.png

今天学到的知识>>>>>>

springmvc与ajax结合

//传递给前台的是json对象
    @RequestMapping(value = "ajax2",produces ="application/json;charset=UTF-8")
    @ResponseBody
    public    Student   ajax2(String name){
        //[1]接受页面数据
        //[2]数据的处理
        Student  student=new Student(18,"张三","男");
        //[3]做出响应
        return student;
    }

sprig中控制器常用的返回值类型

**
 * SpringMVC中控制器的返回值类型
 * 1.返回值类型为字符串:String (常用)
 * 2.返回值类型为:void  --->用于处理ajax请求
 * 3.返回值类型是Java对象(结合@ResponseBody将java对象转换为json对象) --->用于处理ajax请求
 * 4.返回值类型为:View(了解)
 * 5.返回值类型为:ModelAndView(常用)
 */
@Controller
@RequestMapping("mycon2")
public class MyController2 {
    //测试返回值类型为View类型()
    @RequestMapping("test1")
    public View test1(){
        View view = new InternalResourceView("/success.jsp");//相对当前项目的根目录,默认使用是请求转发
        return view;
    }
    //返回值类型为ModelAndView
    @RequestMapping("test2")
    public ModelAndView test2(){
        ModelAndView mv = new ModelAndView();
        mv.setView(new InternalResourceView("/success.jsp"));
        mv.addObject("msg", "test ModelAndView!");//相当于调用request.setAttribute("msg","test ModelAndView!");
        return mv;
    }
    //返回值类型为String
    @RequestMapping("test3")
    public String test2(Model model){
        model.addAttribute("msg", "test model!");//相当于调用request.setAttribute("msg","test model!");
        return "/success.jsp";
    }
    
}

SRP-MVC中请求转发与重定向

原因:

于 WebContent 这一层目录下面的页面,用户如果知道某个 jsp 页面可以直接访问。但是,通常情况下为了保证页面的安全,
我们一般的做法是在 WebContent 这一层目录下只留一个引导页面(index.jsp)作为跳转,把网站相关的页面放入 WEB-INF 文件夹下保护起来。因为放在 WEB-INF 文件夹下的页面没有办法通过地址栏直接访问,只能通过后台的跳转来间接的访问,所以就需要请求 SpingMVC 来返回相应的页面。

@RequestMapping( "test1" )
public String test1(){
    //return "success.jsp";默认使用的请求转发
    //return "/success.jsp";默认使用的请求转发
//默认使用请求转发时, 加不加"/"没有影响
    //return "forward:/success.jsp";使用的请求转发(仅限于当前项目)
    return("redirect:/success.jsp");
}

习题的情况总结>>>>>>

文件上传的步骤

[1]导包
image
[2]配置文件上传对象
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
[3]创建save.jsp
<%--
  Created by IntelliJ IDEA.
  User: SXT
  Date: 2019/8/24
  Time: 14:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户注册</title>
</head>
<body>
<%--
   必须注意:
     [A] 提交方式method="post"
     [B]enctype="multipart/form-data"  二进制流
-%>
<h3>用户添加</h3>
<form method="post" enctype="multipart/form-data" action="fileUpload">

    <p>
        用户名:<input type="text" name="name"/>${msg}

    </p>

    <p>
        分数:<input type="text" name="score"/>

    </p>

    <p>
        年龄:<input type="text" name="age"/>

    </p>
    <p>
        文件:<input type="file" name="fi"/>

    </p>
    <p>
        <input type="submit" value="提交"/>
    </p>
</form>
</body>
</html>
[4]文件上传的代码
  //文件的上传
    @RequestMapping("fileUpload")
    public  String   fileUpload(Student  stu, MultipartFile fi, HttpServletRequest request)throws  Exception{
        String substring = fi.getOriginalFilename().substring(fi.getOriginalFilename().lastIndexOf("."));

        /*****【F】判断文件的后缀******/

        if(!(".png".equals(substring)||".gif".equals(substring)||".jpg".equals(substring))){


            request.setAttribute("msg","上传文件必须是图片");
            return  "/save.jsp";
        }

        /****【E】限定上传文件的大小**/
       /* if(fi.getSize()>20*1024){

            request.setAttribute("msg","上传文件最大是20k");
            return "forward:/save.jsp";
        }*/

         /*****【D】相同图片名称覆盖****/
        String uuid = UUID.randomUUID().toString();

        // fl.jpg

        String  filename =uuid+substring;


        /****【C】获得服务器的目录******/

        String realPath = request.getServletContext().getRealPath("/upload");

        /**【B】自动创建文件目录**/
        File  file=new File(realPath);

        if(!file.exists()){

            file.mkdirs();
        }


        //文件上传完毕
        fi.transferTo(new File(file,filename));
        stu.setFilename(filename);
        stu.setFiletype(fi.getContentType());

        int save = studentService.save(stu);
        if(save>0){
             List<Student> list = studentService.findAll();
             request.setAttribute("list",list);
            //请求转发
            return "success.jsp";
        }else {
            request.setAttribute("msg","添加失败");
            return "forward:/save.jsp";
        }
    }
查询所有学生信息的方法
    //查询所有学生信息
    @RequestMapping("findall")
    public   String  stuFindAll(HttpServletRequest  req){
        List<Student> list = studentService.findAll();
        req.setAttribute("list",list);
        return "success.jsp";
    
最终效果展示
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容