JSP——Javabean及其一些标准标签库

本文介绍了如何在JSP中利用web.xml获取预设的用户名和密码,强调了正确使用application作用域的方法。接着,讨论了JavaBean的标准要求,包括必须实现serializable接口、无参数构造器等,并讲解了JavaBean的setter和getter方法。最后,提到了在使用JavaBean时scope属性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在之前:
web.xml里的内置账号和密码:

<context-param>  
        <param-name>userName</param-name>  
    <param-value>admin</param-value>  
</context-param> 
<context-param>  
    <param-name>password</param-name>  
    <param-value>tomcat</param-value>  
</context-param> 

利用application获取初始的用户名和密码获取web.xml中保存的正确的用户名和密码进行验证
注意这里是两次获取,分别指的是在不同地方进行获取

以.jsp文件作为示例—— 获取的具体语句:

<%@page import="org.apache.catalina.core.ApplicationContext"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
<% 
        request.setCharacterEncoding("UTF-8");
String name=request.getParameter("userName");
String pws=request.getParameter("password");
//name pws 为获取的登录页面用户所输入的 用户名和密码
    if(name.equals((String)application.getInitParameter("userName"))&&pws.equals((String)application.getInitParameter("password")))
    {
    	request.getSession().setAttribute("userName",name);
    	
    
    %>
    <jsp:forward page="home.jsp"/>
    <% 
    }
    else
    {
    	response.sendRedirect("login.jsp");
    }
     
%>
 String name=request.getParameter("userName");
String pws=request.getParameter("password");
//name pws 为获取的登录页面用户所输入的 用户名和密码

从web.xml中进行获取设定好的参数名及其真值 可以用application作用域。
值得注意的是——在这之前 我们通常会使用request.setAtribute() 以致于在后面利用application来获取配置在web.xml里的密码等信息 调用了getAtribute()方法结果是没有任何作用 因为没有相应的setAtribute()

正确调用:

application.getInitParameter();

Init的前缀就知道 初始化好的数据的获取
两者都获取之后 将application所获取的进行类型转换 因为是Object类 需要与String类作比较得转换。

以下是对于关于JavaBean的一些常用的标准标签库叙述:

<jsp:useBean>标签

是用来搭配JavaBean元件的标准标签,必须是满足以下要求的条件纯粹的Java对象:
1、必须实现java.io.serializable接口
2、没有公开(public)的类变量
3、具有无参数的构造器
4、具有公开的setter getter 设值和取值方法

起始一个JavaBean元件就是最初开始学JavaSE的实体类的设置一些属性方法

那么<jsp:useBean>来使用这个JavaBean 并使用<jsp:setProperty> 和 <jsp:getProperty>来对JavaBean进行设值与取值的动作

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="user" class="initial.User" scope="request"/>
<jsp:setProperty property="*" name="user"/>

<%
if(User.isExist())//isExist()方法是存在与JavaBean里的判断密码是否正确的方法
{
	%>
	<h1><jsp:getProperty property="name" name="user"/>登录成功</h1>
	<%
}
else
{
%>
<h1>登陆失败</h1>
<% 
}
%>
<jsp:useBean>这一部分的内容相对而言比较容易理解
<jsp:setProperty>标签用于设置JavaBean的属性值。name属性用于指定要使用那个名称取得JavaBean实例。在property属性设置为*时,表示将自动寻找符合JavaBean中设值方法名称的请求参数值,如果请求参数名称为XXX,就将请求参数值使用setXXX()方法设置给JavaBean实例。
<jsp:getProperty> 和以上的用法相差无几 最后一行 改为 使用getXXX()方法

注意在 <jsp:useBean>这一部分别忘记 scope这一属性值的设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值