jsp使用+返回or使用数据+日志输出
遇到的问题
jdk环境配置
- 环境配置的时候冲突了,最后发现f盘里java那个文件放的就是jdk
注意要在环境变量里面配置jdk路径,同时在idea里面要在文件下面的文件结构中的jdk配置 - Invalidate Caches/Restart清理一下idea缓存。因为如果之前用过老版本的springboot开发,下次新建
springboot项目,idea默认会缓存父依赖项信息,当引入本地仓库不存在的父依赖版本时,就会报错:找不到依赖申明。而引用本地仓库已存在的依赖版本并不会报错,因此才推断出是idea缓存的原夕清除缓存之后,重启,刷新pom.xml,发现自动下载新版本的springboot了,下载完成后不再爆红
文件名和路径
mapping作用如其名,始终是==./mapping内的值==
直接返回jsp页面时,映射的是return对应的文件
需要返回数据+页面时,映射的是mv.setViewName内对应的视图文件
一些需要理解的东西
JSP和html
协议上行加上
<%@page contentType=“text/html; UTF-8” pageEncoding=“UTF-8” %>
后缀名是.jsp
jsp动态加载,不用重跑项目
一般直接加了东西,在页面直接刷新就可以了,如果不行:
- 加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
- 配置
jdk直接返回内容到页面 完成过程
- 先创建一个空项目
- 空项目中创建springboot项目-选择java和maven以及域名为com.x-勾选springweb服务
- 创建完成之后在com.x下面创建模块
- 在模块中书写代码注意要@controller@RequestMapping(“/hello”)@ResponseBody
- 最后在入口文件中启动的项目
- 然后在本地服务器里访问localhost:端口号
jdk返回student类中的数据
@RequestMapping("/student")
@ResponseBody
public student students(){
student stu = new student();
stu.setAge(2);
stu.setName("wanghua");
stu.setScore(98);
stu.setId(1111);
return stu;
}
import java.io.Serializable;可串行化接口?
import java.io.Serializable;
public class student implements Serializable {
private int id;
private String name;
private int age;
private int score;
public student() {
}
public student(int id, String name, int age, int score) {
this.id = id;
this.name = name;
this.age = age;
this.score = score;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String toString() {
return "id:" + id + ", name:" + name + ", age:" + age + ", score:" + score;
}
}
jsp环境搭建与javaee
思维理解过程
- 只有两个注解而不写@ResponseBody时无法访问到返回的东西
- 此时static里放置静态页面是可以通过路径在页面访问的,但是Webapp无论是否jsp or html都不可以访问到
- 加上jsp的一个依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
构建依赖完成后在application.properties文件下加上
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
package com.lsm.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/test")
public String test01() {
return "test01";
}
}
就会和Controller下的TestController中的返回值(这个是自己写的文件)构建为一个访问路径 注意此时只用访问mapping的路径(而不是对应的文件.jsp)(但是由于前面的配置所以实际访问的是/return返回值.jsp这个文件)
-
配置工作目录
-
当能寻找到webapp目录下的jsp文件,那么webapp下的html文件也可以找到
使用jsp+传数据
package com.lsm.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class TestController {
@RequestMapping("/test")
public ModelAndView test01(ModelAndView mv) {
mv.addObject("msg", "传数据");
mv.setViewName("test01");
System.out.println("test01");
return mv;
}
}
视图名是jsp的文件名
日志输出
- 某个类的固定格式不想写,就用@Data会导入lombok
- @Slf4j就可以用了
- 日志也就可以用的了