JSP数据访问

include指令

文件引用指令include,可可以将一些可以重用的内容写入一个单独的文件中,然后通过include指令引入文件,从而缓解代码的冗余问题,并且修改时也更加方便。

<% @include File="应用文件路径"%>

application内置对象

application对象代表Web应用

     同一个application对象中,用户之间数据共享

     Web应用启动时由服务器创建,应用程序停止即销毁

application对象常用方法

方法名称说明
void setAttribute(String Key,Object value)以key/value的形式将对象存储到application中
Object getAttribute(Stringg key)通过key获取application中储存的对象
String getRealPath(String path)返回相对路径的真实路径

<%
int count;
if (application.getAttribute("count")==null){
    count=1;
}else {
   count=(Integer)application.getAttribute("count");
   count++;
}
out.print("你是第"+count+"个注册本网站的人");
//存入
    application.setAttribute("count",count);
%>
欢迎来到首页

JSP常用内置对象的作用

out用于向客户端输出数据
request主要用于处理客户端请求的数据信息
response用于响应客户端请求并向客户端输出信息
session用于记录会话状态的相关信息
application类似于系统的全局变量,用于实现web应用中的资源共享

JSP对象的作用域

page: 只用于当前页面

request: 请求 当前页面+跨页面(转发的方式)

session :会话层级 只要不关浏览器 不到期都可以使用

application: 只要不停止服务器都可以使用

page

    作用域范围:当前页面

    作用域对象:pageContext对象

<% String pageName="pageOne";
pageContext.setAttribute("pageName",pageName);
System.out.println("pageName:"+pageContext.setAttribute("pageName",pageName));
request.getRequestDispatcher("two.jsp").forward(request,response);
%>
request

     作用域范围:当前请求

     作用域对象:request对象

Integer countPage=(Integer)request.getAttribute("countPage");
if(countPage==null){
countPage=1;
}else{
counntPage++;
}
request.getAttribute("countPage",countPage);
session

     作用域范围:当前会话

     作用域对象:session对象  

application

      作用域范围:当前Web应用

      作用域对象:application对象

 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="one.jsp"%>
<html>
  <head>
    <title>引入</title>
  </head>
  <body>
  <h1><%="Hello World!"%></h1>
  <br>
  <a href="one.jsp">欢迎进入网站</a>
  <%
    //page作用域:当前页面
    pageContext.setAttribute("pc","page");
    //request作用域:一次请求
    request.setAttribute("req","request");
    //session作用域:一次会话
    session.setAttribute("sess","session");
    //application作用域:当前应用程序
    application.setAttribute("app","application");
    request.getRequestDispatcher("two.jsp").forward(request,response);
  %>
  <div>
    page作用域中的值:<%=pageContext.getAttribute("pc")%>
  </div>
  </body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<html>
<head>
    <title>页面</title>
</head>
<body>
    <%
        //获取count的值
        Integer count=(Integer) application.getAttribute("count");
        if(count!=null){//不是第一次访问
            count+=1;
        }else{//第一次访问
            count=1;
        }
        application.setAttribute("count",count);
    %>
    <a href="one.jsp">该网站被访问<%=(Integer) application.getAttribute("count")%></a>
</body>
</html>

使用JDBC链接数据库

第一步:加载JDBC驱动

使用Class.forName( )方法加载JDBC驱动类到Java虚拟机中

第二步:与数据库建立连接

调用DriverManager 类的getConnection()方法,获取数据库连接

第三步:发送SQL语句,得到返回结果

第四步:处理返回结果

第五步:数据库访问结束后,进行资源释放

// 加载MySQL数据库驱动
Class.forName("com.mysql.jdbc.Driver");

// 定义数据库连接信息
String url = "jdbc:mysql://125.74.233.192:3306/fruitdb?characterEncoding=utf-8";
String user = "root";
String password = "123456";

// 建立数据库连接
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println("connection = " + connection);

// 定义查询条件
String fname = "西瓜' or 1=1 or fname='";
String sql = "select * from t_fruit where fname = '" + fname + "'";
System.out.println("sql = " + sql);

// 创建Statement对象
Statement statement = connection.createStatement();

// 执行查询语句
ResultSet resultSet = statement.executeQuery(sql);

// 处理查询结果
if (resultSet.next()) {
    System.out.println(resultSet.getInt(1)); // 获取第一列的整数值
    System.out.println(resultSet.getString("fname")); // 获取"fname"列的字符串值
    System.out.println(resultSet.getInt(3)); // 获取第三列的整数值
    System.out.println(resultSet.getInt("fcount")); // 获取"fcount"列的整数值
    System.out.println(resultSet.getString("remark")); // 获取"remark"列的字符串值
}

JavaBean封装数据

JavaBean是可以跨平台的重用组件,本质是一个特殊的Java类

javabean特点

①JavaBean的功能分类

封装数据

封装业务

②JavaBean的规范

提供无参的公有构造方法

实现Serializable接口

属性私有

属性的getter、setter方法公有

③JavaBean的优势

解决代码重复编写,减少代码冗余

功能区分明确

提高了代码的维护性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值