javaweb学习笔记
建立项目
创建的时候选择maven -->webapps(有两个 选下面一个)。更改web.xml为4.0版本
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="false">
</web-app>
导包
pom.xml里面导入相关依赖
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.53</version>
</dependency>
</dependencies>
建立项目基本结构 各种包 层。
编写实体类 bean/pojo/domian
编写jdbc工具类
注册第一步
编写user类
编写Dao 实现数据库的操作
插入语句中有误 加字段名或者添加null值
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String rs = "bad!!";
PrintWriter out = resp.getWriter();
out.print(rs);
}
不让浏览器缓存
HttpServletResponse response = (HttpServletResponse)resp;
response.setDateHeader("Expires", -1); //告诉浏览器数据可以缓存多长时间,-1或0表示不缓存
response.setHeader("Cache_Control", "no-cache"); //支持HTTP 1.1,告诉浏览器要不要缓存数据,如“no-cache”
response.setHeader("Pragma", "no-cache"); //支持HTTP 1.0,告诉浏览器要不要缓存数据,如“no-cache”
JSON
// json格式字符串
String str = "{name:'z',gender:'1212',phone:'5545454545454'}";
//把json字符串转化成>java对象格式
//利用函数JSON.parse
//函数有两个参数 json字符串,转化成的目标class对象
Person p = JSON.parseObject(str,Person.class);
System.out.println("姓名:"+ p.getName()+",sex:"+ p.getGender()+",phone:"+ p.getPh、、、ne());
Person p = new Person("张三","123135645","nan");
String jsonA = JSON.toJSONString(p);
System.out.println(jsonA);
//转化成数组
Person p = new Person("张三","123135645","nan");
Person p1 = new Person("张三","123135645","nan");
Person p2 = new Person("张三","123135645","nan");
Person p3 = new Person("张三","123135645","nan");
Person p4 = new Person("张三","123135645","nan");
Person[] arr = new Person[5];
arr[0] = p;
arr[1] = p1;
arr[2] = p2;
arr[3] = p3;
arr[4] = p4;
String js = JSON.toJSONString(arr);
System.out.println(js);
错误记录
useSSL=false 不加将导致 无响应数据。
JDBC路径引起报错 无数据返回 服务器端
String url = "jdbc:mysql://localhost:3306/ssms?useUnicode=true&characterEncoding=utf-8&useSSL=false";
String username = "root";
String password = "root";
servlet 页面输出乱码 resp.setContentType(“text/html;charset=UTF-8”);
解决java跨域
在web.xml中 第一个配置好 过滤器
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.yu.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
服务器端口开放
ssh:22
mysql:3306
tomcat:8080
bt:8888
http:80
mysql
设置外键
对一张表的字段添加外键,保存时一直提示不能添加外键约束
原因:
(1)外键对应的字段数据类型不一致
(2)两张表的存储引擎不一致
(3)设置外键时“删除时”设置为“SET NULL”
图片类型:mediumblob
创建 对象类型的函数 可以只传一个参数
public User selectByName (String name) {
return null;
}
//用URL创建 HTTPConnection 对象
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
//打开连接
conn.connect();
//打印请求响应的头部信息
Map<String, List<String>> header = conn.getHeaderFields();
for(String key:header.keySet()){
System.out.println(key+":"+header.get(key));
}
//打印响应内容
BufferedReader br = new BufferedReader(new InputStreamReader (conn.getInputStream(), "UTF-8"));
String str=null;
while((str=br.readLine())!=null){
System.out.println(str);
}
conn.disconnect();
退出登录
登录的时候是把user对象,存放在session的attribute中,
退出登录登录,将session的attribute去掉
或者把session直接去掉
购物车
购物车的表:要有用户的id和商品的id 根据两个的id 设置外键,进行连表查询,就可以查询出 商品信息。
需要判断用户是否登录,如果用户没有登录,那么不执行。通过session查看用户是否登录。
spring boot 部分
- 官网生成项目
.iml文件 不能删除。
热部署 导入依赖
bootschool
spring boot banner
yaml 配置springboot 默认配置
lombok get set 方法