目录
回顾内容
web01
什么是jsp?
安装tomcat
Web02
基本指令
表单提交方式
Web03
jsp的跳转方式
Web04
数据库连接语句
Web07
Web09
分页功能的sql语句
Web10
文件上传
富文本编辑器
Web11
在没有使用三层架构的情况
三层架构
三层架构在项目中的具体应用
数据库连接语句
创建用户对象以便后续实现登录注册功能
编写用户逻辑层接口代码
编写用户业务逻辑层实现类代码
编写用户数据库访问层接口代码
编写用户数据库访问层实现类代码
什么是jsp?
jsp是一种文件格式,用于编写java,html,css,javaScript,jsp本质上是java的额外封装,解析过程中优先解析java
安装tomcat
教程:JavaWeb01.web环境搭建
tomcat默认端口:8080
如果出现了端口异常,仅需要双击服务器修改端口
基本指令
- <%=输入内容%>
- <% java脚本 %>
- <% page页面指令 %>
- <% include 包含指令 %>
表单提交方式
- get 通过地址栏带参,参数有长度限制
- post 不通过地址栏带参,参数没有长度限制
ps:文件上传的时候,必须使用post,必须是多段式表单
Web03
jsp的跳转方式
转发 forward
- 可以携带数据(请求中的)
- 地址栏不变
- 服务器行为
重定向 redirect
- 不可以携带数据(请求中的)
- 地址栏会变
- 是客户端行为
Web04
数据库连接语句
jdbc:oracle:thin:@localhost:1521:orcl
Web07
cookie和session的异同
同:都可以设定存在时间:session默认30min,cookie默认浏览器关闭
异:
- session 服务端存储
- cookie 客户端存储
应用场景:
- 浏览记录 cookie
- 鉴权 session
- 部分记录存数据库里,缓冲数据库
Web09
分页功能的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;
Web10
文件上传
操作流程
- 将文件保存到电脑路径中
- 将保存的电脑路径存到数据库
- 绑定tomcat映射,为保存文件的目录加上访问路径
ps:文件上传可以使用UUID生成一个不重复的名字 UUID.randomUUID()
富文本编辑器
使用实质:将输入的语句变成html语句进行保存
Web11
在没有使用三层架构的情况
- jsp 将页面显示出来
- dao 在数据库中取得数据并进行处理
dao层 1.取得数据 2.处理数据
【系统的耦合性:各个模块连接的紧密度】
三层架构
- 各司其职
- 高内聚,低耦合
【结构】
- 表示层
- 业务逻辑层
- 数据库访问层
【调用顺序】
表示层 -> 业务逻辑层 -> 数据库访问层 ->获得数据 ->数据库访问层 -> 业务逻辑层 -> 表示层
【命名规则】
com.biz -> Biz接口,规范实现类,通过里氏替换原则在表示层中实现具体方法
com.biz.impl -> Biz的接口实现类,具体处理数据具体方法的体现
com.dao -> Dao接口,数据库访问层实现类的规范
com.dao.impl -> Dao接口的实现类,访问数据库方法具体体现
创建接口和实现类,其中可以先创建接口来规范实现类中的方法,也可以先创建实现来来完善接口中的约束
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;
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.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.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;
}
}
你要尽全力保护你的梦想。那些嘲笑你梦想的人,他们注定失败,他们想把你变成和他们一样。我坚信,只要心中有梦想,我就会与众不同。你也是。