大家好!我是小何,今天呢和大家说一下这个javaWeb的application和javaBean封装
这个application类似于系统的“全局变量”,用于实现用户之间的数据共享
application对象的常用方法: void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到application中
application.setAttribute("LOGINED_USER", new ArrayList());
Object getAttribute(String key):根据键去获取application中存放对象的值
if (application.getAttribute("LOGINED_USER") != null) { List loginedUsers = (List) application.getAttribute("LOGINED_USER"); }
简单的介绍一下
进入正题,看看application做出来的网页访问,代码如下
<body>
<%
//application的作用域:在服务器的打开和关闭之间有效
//应该先拿值
Integer count=(Integer)application.getAttribute("count");
if(count!=null){//拿到了 说明以前有人访问过
count++;//在原来的访问量上递增1
}
else{
count=1;
}
application.setAttribute("count", count);//存值 键,值
%>
您是第<%=application.getAttribute("count") %>位访问该网站的用户.
</body>
使用后的效果 是这样的,只要你每次刷新都会递增,你换网站同理
ok,application说完了,现在来说一下JavaBean封装,
首先我们要知道为什么需要JavaBean封装,先来说一下JavaBean封装弊如下
JavaBean的优势呢如下:
解决代码重复编写,减少代码冗余 功能区分明确,避免业务逻辑处理与页面显示处理集中在一起造成混乱 提高了代码的维护性
ok,现在我们简单的来看一下代码,先看dao方法
package com.zking.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.zking.util.DBHelper;
/**
* dao方法
* @author Janet
*
* @date 2022年4月5日 上午19:55:24
*/
public class UserDao {
//三兄弟
private Connection con=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
/**
* 登录
* @param uname 用户名
* @param upwd 密码
* @return 登录成功与否
*
* 建议大家也可以返回User对象
*/
public boolean login(String uname,String upwd) {
boolean f = false;
// User u = null;
try {
//jdbc连接Oracle做判断
con=DBHelper.getCon();
//定义sql语句
String sql="select * from yh where yname=? and ypwd=?";
//获得执行对象
ps=con.prepareStatement(sql);
//给占位符赋值
ps.setString(1, uname);
ps.setString(2, upwd);
//开始执行
rs=ps.executeQuery();
//判断 遍历
if(rs.next()){//说明登录成功
f = true;
// u = new User(rs.getInt(1).......);
}
} catch (Exception e) {
e.printStackTrace();
} finally {//不管是否发生异常 资源都要关
DBHelper.myClose(con, ps, rs);
}
return f;
// return u;
}
}
接着是下面的
<%@page import="com.zking.dao.UserDao"%>
<%@page import="com.zking.util.DBHelper"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置编码方式
request.setCharacterEncoding("utf-8");
//接收表单提交过来的值:用户名 密码 根据name值取value值
String name=request.getParameter("aa");
String pwd=request.getParameter("bb");
//调用登录的dao方法
UserDao ud=new UserDao();
boolean f=ud.login(name, pwd);
if(f){
//使用Cookie判断用户是否登录
Cookie c=new Cookie("sname",name);//name,value
//设置Cookie的有效期 10s 一周内免登陆
//获取复选框的勾选状态
String ck=request.getParameter("dd");
if(ck!=null){//说明勾选了
c.setMaxAge(60*60*24*7);
}
//写入响应
response.addCookie(c);
//重定向
response.sendRedirect("news/admin.jsp");
//转发
//request.getRequestDispatcher("news/admin.jsp").forward(request, response);
}
else{
//说明登录失败
out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");
}
%>
这和之前登陆方法一样的,ok今天的内容到此结束