目录
web01
安装tomcat
Web02
表单提交方式
Web03
jsp的跳转方式
Web04
数据库连接语句
Web07
Web09
分页功能的sql语句
web10
文件上传
操作流程
三层架构项目中的应用
数据库连接语句
创建实体类
业务逻辑层实现代码
逻辑层接口代码
数据库访问层接口代码
数据库访问层实现类代码
——2022.4.13
什么是jsp?
jsp是一种文件格式用于编写java,javascript,htm,jsp本质上就是额外封装,在解析过程中优先解析java代码
安装tomcat
教程:JavaWeb01.web环境搭建
tomcat默认端口:8080
如果出现了端口异常,仅需要双击服务器修改端口
基本指令
- <%=输入内容%>
- <% java脚本 %>
- <% page页面指令 %>
- <% include 包含指令 %>
表单提交方式
- get 通过地址栏带参,参数有长度限制
- post 不通过地址栏带参,参数没有长度限制
ps:文件上传的时候,必须使用post,必须是多段式表单
jsp的跳转方式
转发 forward
- 可以携带数据(请求中的)
- 地址栏不变
- 服务器行为
重定向 redirect
- 不可以携带数据(请求中的)
- 地址栏会变
- 是客户端行为
数据库连接语句
jdbc:oracle:thin:@localhost:1521:orcl
cookie和session的异同
同:都可以设定存在时间:session默认30min,cookie默认浏览器关闭异:
session 服务端存储
cookie 客户端存储
应用场景:浏览记录 cookie
鉴权 session
部分记录存数据库里,缓冲数据库
分页功能的sql语句
【规律】:page当前页面 rows显示条数page:1 rows:10 1~10
page:2 rows:10 11~20
page:3 rows:10 21~30
begin(开始位置):(page-1)*rows+1 end(结束位置):page*rows
【sql语句】:
select * from ( select a.*,rownum myr from t_news a )b where myr between begin and end;
文件上传
操作流程将文件保存到电脑路径中
将保存的电脑路径存到数据库
绑定tomcat映射,为保存文件的目录加上访问路径
ps:文件上传可以使用UUID生成一个不重复的名字 UUID.randomUUID()富文本编辑器
使用实质:将输入的语句变成html语句进行保存
创建接口和实现类,用接口去约束实现类里面的方法
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleDriver;
public class DBHelper {
//加载驱动
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//定义url
private static final String URL="jdbl:oracle:thin:@localhost:1521:orcl";
//获得链接
public static Connection getCon() {
Connection con=null;
try {
con=DriverManager.getConnection(URL,"scott","sa123");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
//关闭资源
public static void close(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(!con.isClosed()&&con!=null) {
con.close();
}if(!ps.isClosed()) {
ps.close();
}if(!rs.isClosed()) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.pojo;
public class User {
private int userid;
private String username;
private String userpwd;
private String usersex;
private int userage;
public String getUsersex() {
return usersex;
}
public void setUsersex(String usersex) {
this.usersex = usersex;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpwd() {
return userpwd;
}
public void setUserpwd(String userpwd) {
this.userpwd = userpwd;
}
@Override
public String toString() {
return "User [userid=" + userid + ", username=" + username + ", userpwd=" + userpwd + "]";
}
public User() {
// TODO Auto-generated constructor stub
}
public User(int userid, String username, String userpwd, String usersex, int userage) {
super();
this.userid = userid;
this.username = username;
this.userpwd = userpwd;
this.usersex = usersex;
this.userage = userage;
}
}
package com.biz.impl;
import com.biz.IUserbiz;
import com.dao.IUserDao;
import com.dao.impl.UserDaoImpl;
import com.pojo.User;
/**
*
* @author lihao
*
*/
public class UserBizImpl implements IUserbiz{
IUserDao ud = new UserDaoImpl();
public int logon(String uname,String upwd,String usex,int uage){
try {
int uid=ud.queryMaxUserId();
User u=new User(uid,uname,upwd,usex,uage);
return ud.logon(u);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public String login(String uname,String upwd) {
User u =ud.login(uname);
if(u==null) {
return "account not found";
}
if(!upwd.equals(u.getUserpwd())) {
return "password error";
}
return "login success";
}
}
package com.biz;
import com.pojo.User;
import newsProject.T_user;
/**
* 用户逻辑层接口
* @author lihao
*
*/
public interface IUserbiz {
int logon(String uname,String upwd,String usex,int uage);
String login(String uname,String upwd);
}
package com.dao;
import com.pojo.User;
public interface IUserDao {
User login(String uname);
int logon(User user);
int queryMaxUserId();
}
package com.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.dao.IUserDao;
import com.pojo.User;
import newsProject.DBHelper;
public class UserDaoImpl implements IUserDao{
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public User login(String uname) {
try {
con=DBHelper.getCon();
ps=con.prepareStatement("select * from t_user where user_name = ?");
ps.setString(1,uname);
rs=ps.executeQuery();
if(rs.next()) {
User u = new User();
u.setUserid(rs.getInt(1));
u.setUsername(rs.getString(2));
u.setUserpwd(rs.getString(3));
u.setUsersex(rs.getString(4));
u.setUserage(rs.getInt(5));
return u;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public int logon(User user) {
try {
con=DBHelper.getCon();
ps=con.prepareStatement("insert into t_user(user_id,user_name,user_pwd,user_sex,user_age) values(?,?,?,?,?)");
ps.setInt(1,user.getUserid());
ps.setString(2,user.getUsername());
ps.setString(3,user.getUserpwd());
ps.setString(4,user.getUsersex());
ps.setInt(5,user.getUserage());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public int queryMaxUserId() {
int i=0;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("select max(user_id) from t_user");
rs=ps.executeQuery();
if(rs.next()) {
i=rs.getInt(1)+1;
}
} catch (Exception e) {
e.printStackTrace();
}
return i;
}
}