JavaWeb12(知识集锦)

目录

一,JSP

1.什么是JSP

是一种文件格式

写java,html,css,js

jsp本质上是java的额外封装,解析过程中优先解析java

">

.jsp -> .java -> .class -> jvm执行

2.安装tomcat

  - 默认端口 8080  - 如果出现了端口异常,修改端口

二,基本指令

        - <%=输入内容 %>        - <% java脚本 %>        - <%@page 页面指令 %>        - <%@include 包含指令 %>

三,表单提交方式

四,JSP跳转方式

转发 forward 

可以携带数据(请求中的)

地址栏不变

是服务器行为                       

重定向 redirect  

不可以携带数据(请求中的)

地址栏会改变

是客户端行为  

五,cookie和session

1.session 服务端存储

2.cookie  客户端存储

 应用场景:        * 浏览记录  cookie        * 鉴权  session        * 存数据库里面,缓冲数据库

六,数据分页

page当前页数 rows显示条数

【sql】

select * from (                select a.*,rownum myr from stu a            )b where myr between begin and end;           

七,文件上传

文件上传的主要操作

如何诞生一个不重复的名字

八,三层架构

        jsp 将页面显示出来        dao 去数据库取数据,处理数据        dao层:1.拿数据 2.负责处理数据    【系统的耦合性:各个模块连接的紧密度】        【三层架构】        各司其职        高内聚,低耦合

    【结构】

    【调用顺序】

    【命令规则】

具体操作:

1.在目录下建立以下的包和类

然后再依次编写代码:

效果图:


一,JSP

1.什么是JSP

  • 是一种文件格式

  • 写java,html,css,js

  • jsp本质上是java的额外封装,解析过程中优先解析java

  • <a href="<%="www.baidu.com"%>">

  • .jsp -> .java -> .class -> jvm执行

2.安装tomcat

  - 默认端口 8080
  - 如果出现了端口异常,修改端口

二,基本指令

        - <%=输入内容 %>
        - <% java脚本 %>
        - <%@page 页面指令 %>
        - <%@include 包含指令 %>

三,表单提交方式

        - get  通过地址栏带参,参数有长度限制
        - post 不通过地址栏带参,参数没有长度限制
        > 文件上传的时候 必须是post,必须是多段式表单

四,JSP跳转方式

转发 forward 

  • 可以携带数据(请求中的)

  • 地址栏不变

  • 是服务器行为                       


重定向 redirect  

  • 不可以携带数据(请求中的)

  • 地址栏会改变

  • 是客户端行为  


五,cookie和session

都可以设定存在时间,默认关闭时间是:session-30分钟,cookie-当浏览器关闭的时候

1.session 服务端存储

2.cookie  客户端存储

 应用场景:
        * 浏览记录  cookie
        * 鉴权  session
        * 存数据库里面,缓冲数据库


六,数据分页

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 stu a
            )b where myr between begin and end;           

七,文件上传

文件上传的主要操作

1.将文件保存到电脑路径中
2.将保存的电脑路径存到数据库
3.绑定tomcat映射,为你保存文件的目录加上一个访问路径


如何诞生一个不重复的名字

1.使用UUID    UUID.randomUUID()
2.富文本编辑器 (把你输入的语句变成了html来保存) 


八,三层架构

        jsp 将页面显示出来
        dao 去数据库取数据,处理数据
        dao层:1.拿数据 2.负责处理数据
    【系统的耦合性:各个模块连接的紧密度】
    
    【三层架构】
        各司其职
        高内聚,低耦合

    【结构】

        表示层     服务员
        业务逻辑层     biz     厨师
        数据库访问层   dao     买菜的人

    【调用顺序】

        表示层->业务逻辑层->数据库访问层-|
                                    |
        表示层<-业务逻辑层<-数据库访问层|

    【命令规则】

        com.biz -> Biz接口
        com.biz.impl ->Biz的接口实现类
        com.dao -> Dao接口
        com.dao.impl -> Dao接口的实现类

具体操作:

1.在目录下建立以下的包和类

然后再依次编写代码:

IUserBiz.java:

package com.xly.biz;

import java.util.List;

import com.xly.pojo.User;

public interface IUserBiz {
	String login(User user);
	
	List<User>queryAll();
	
}

UserBizImpl.java:

package com.xly.biz.impl;

import java.util.List;

import com.xly.biz.IUserBiz;
import com.xly.dao.IUserDao;
import com.xly.dao.impl.UserDaoImpl;
import com.xly.pojo.User;

public class UserBizImpl implements IUserBiz{
	private IUserDao userDao=new UserDaoImpl();
	
	public String login(User user) {
		User u=userDao.login(user);
		if(u==null) {
			return "account not found";
		}
		//这里有两个对象,u是数据库带来的,user是表示层给我的
		if(!u.getUserPwd().equals(user.getUserPwd())) {
			return "password error";
		}
		return "login success";
	}
	
	public List<User> queryAll() {
		return userDao.queryAll();
	}
}

IUserDao.java:

package com.xly.dao;

import java.util.List;

import com.xly.pojo.User;

public interface IUserDao {
	User login(User user);
	List<User>queryAll();
	
}

UserDaoImpl.java:

package com.xly.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;

import com.xly.dao.IUserDao;
import com.xly.pojo.User;

import util.DBHelper;

public class UserDaoImpl implements IUserDao{
	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	
	public List<User>queryAll(){
		return null;
	}
	
	public User login(User user) {
		try {
			con=DBHelper.getCon();
			String sql="select * from t_user where user_name=?";
			ps=con.prepareStatement(sql);		
			ps.setString(1, user.getUserName());
			ps.setString(2, user.getUserPwd());
			rs=ps.executeQuery();
			if(rs.next()) {
				//将信息赋值给user对象
				User u=new User();
				u.setUserName(rs.getString(2));
				return u;

			}
		} catch (Exception e) {
			
		}finally {
			DBHelper.close(con, ps, rs);
		}
		return null;
	}
}

User.java:

package com.xly.pojo;

public class User {
	private Integer userId;
	private String userName;
	private String userPwd;
	public Integer getUserId() {
		return userId;
	}
	public void setUserId(Integer 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;
	}
	
	public User() {
		// TODO Auto-generated constructor stub
	}
	
	public User(Integer userId, String userName, String userPwd) {
        this.userId = userId;
        this.userName = userName;
        this.userPwd = userPwd;
    }

	
	
}

DBHelper:

package util;

import oracle.jdbc.driver.OracleDriver;

import java.sql.*;

/**
 * @author harrison
 * @version v1.0
 * @create 2022-04-04@星期一
 * @Description {自定义描述}
 **/
@SuppressWarnings("all")
public class DBHelper {

    //加载驱动
    static{
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    //定义链接字符串
    private static final String URL="jdbc:oracle:thin:@localhost:1521:orcl";

    //获得链接
    public static Connection getCon() {
        try {
            return DriverManager.getConnection(URL,"scott","tiger");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    //关闭资源
    public static void close(Connection con,PreparedStatement ps, ResultSet rs) {
        try {
            if (con!=null&&!con.isClosed()) {
                con.close();
            }if(ps!=null) {
            	 ps.close();
            }if(rs!=null) {
            	 rs.close();
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

}

doLogin.jsp:

<%@page import="com.xly.biz.impl.UserBizImpl"%>
<%@page import="com.xly.biz.IUserBiz"%>
<%@page import="com.xly.pojo.User"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    //dologin是表示层
    //需要取到用户的数据
   String username=request.getParameter("username");
   String password=request.getParameter("password");
   
   //将数据封装到实体类中
   User user=new User(0,username,password);
   
   //判断用户是否登录  
   //里氏替换原则 可以用接口来约束实现类
   //面向接口编程:
   //1.先编写接口
   //2.实现该接口
   //3.使用里氏替换原则来声明接口对象
   //4.调用接口的方法
   
   IUserBiz userBiz=new UserBizImpl();
   //这里的user是表示层给他的
   String msg=userBiz.login(user);//这里的login调用的是Biz实现类的方法(UserBizImpl)
   
%>
<h1><%=msg%></h1>

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
	<form action="doLogin.jsp" method="post">
	<p><input type="text" name="username"></p>
	<p><input type="text" name="password"></p>
	<p><button>登录</button></p>
	
	</form>
</body>
</html>

效果图:


今天的分享就到此为止啦,精彩下期继续!

     

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值