写在之前:
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这一属性值的设置