`
guiqing85
  • 浏览: 168808 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSP学习笔记(二) Jsp调用JavaBean Jsp异常处理 JAAS实现安全

阅读更多
1 Jsp调用JavaBean
分离页面的显示代码和业务逻辑代码,将业务代码放到后台的Java Bean中。
减少了JSP中的脚本代码,便于维护和复用。
Java Bean:
1)无参数的构造方法(默认构造方法)
2)标准getter、setter方法
3)如果要支持RMI的,要实现Serializable

jsp:useBean--->在Jsp页面中使用一个JavaBean
<jsp:useBean id="" class="" scope=""/>
id:javaBean对象名
class:bean class的位置
scope:javaBean对象的共享范围(page,request,session,application)

page:当前页面范围
request:同一个请求范围 forward,include
session:同一个会话
application:同一个应用 ServletContext


例子:Student

<jsp:useBean id="stu" class="vo.Student" scope="session"/>
等价于
<%
Student stu=(Student)session.getAttribute("stu");
if(stu==null){
stu=new Student();
session.setAttribute("stu",stu);
}
%>
可以用表达式获得bean的值
<%=stu.getName();%>

对JavaBean的属性赋值
1)<jsp:setProperty name="" property="" value=""/>
name:JavaBean对象名
property:JavaBean属性名
value:属性值
<jsp:setProperty name="stu" property="name" value="Bobo"/>
等价于
<%
stu.setName("Bobo");
%>
可以嵌套JSP表达式
<jsp:setProperty name="stu" proprty="name"
value='<%=request.getParameter("name")%>'/>

2)设置JavaBean的属性值
<jsp:setProperty name="" property="" param=""/>
param:对应着request中输入域的名

<form>
age:<input type="text" name="age"/>
...
</form>

package vo;
public class Student implements java.io.Serializable{
private String name;
public void setName(String name){this.name=name}
public void getName(){return name;}
...
}

<jsp:setProperty name="stu" property="age"  param="age"/>


3)Java Bean中的属性名与form中输入域的名字保持一致的话,可以使用通配符*
一次设置所有字段的值。
<jsp:setProperty name="" property="*"/>

<form>
name:<input type="text" name="name"/>
sex:<input type="text" name="sex"/>
age:<input type="text" name="age"/>
</form>

package com;
public class Student implements java.io.Serializable{
private String name;
private String sex;
private int age;
public void setName(String name){this.name=name}
public void getName(){return name;}
...
}

<jsp:setProperty name="stu" property="*"/>

获得Java Bean的值
<jsp:getProperty name="" property=""/>
<jsp:getProperty name="abc" property="name"/>等价于 <%=abc.getName()%>

2 JSP中的异常处理
1)try/catch/finally/throws/throw


2)errorPage, isErrorPage
<%@page errorPage="error.jsp"%>  需要错误处理的页面

<%@page isErrorPage="true"%> 错误页面,有一个隐式对象exception可用
<%=exception%>
产生内建对象exception,可通过它获得异常信息

3)声明的方式处理异常
web.xml
  <error-page>
    <exception-type>java.lang.ArithmeticException</exception-type>
    <location>/MathError.jsp</location>
  </error-page>

  <error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
  </error-page>

RuntimeException:
java.lang.ArithmeticException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException

Java中的RuntimeException及其子类是不需要处理的(try/catch),因为所有的
RuntimeException总是可以通过优化代码来避免,
这种异常被称为“Unchecked Exception”。
思考:三种异常处理方式同时启动用,那个优先级高?
作用域越小,起作用的优先级越高。

Checked Exception

注意:要使得页面自动跳转到错误页面,必须关闭浏览器的“显示友好HTTP错误信息”选项

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {
        //只处理这两种兼容的异常
       
        }

3 JAAS实现安全   Java EE规范之一,实现Java EE应用程序安全性的一个重要途径
Java Authentication and Authorization Service
Java认证(Authentication)与授权(Authorization)服务
(要求:会用!不要求深入理解)
Web端的认证方法有:BASIC、FORM、DIGEST、CERTIFACATE

1)在Tomcat Server中配置新用户与角色
%TOMCAT_HOME%/conf/tomcat-user.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="narci" password="11" roles="admin,manager"/>
  <user username="lily" password="11" roles="manager"/>
</tomcat-users>

--------------------------------------------------------------------
为什么tomcat可以使用tomcat-user.xml作为它保存用户和角色信息的文件?
因为在server.xml中,有以下配置:
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />
---------------------------------------------------------------------         

2)声明安全性约束(指明受限资源)
web.xml
   <security-constraint>
<display-name>Constraint-all</display-name>
<web-resource-collection>
<web-resource-name>all-resources</web-resource-name>
<description />
<url-pattern>/admin/*</url-pattern>
<url-pattern>/security/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description />
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>

3)选择认证方式(使用标准的FORM方式)
web.xml
如果是BASIC认证:5)步可以不用。
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>UserDatabaseRealm</realm-name>
  </login-config>
如果是FORM认证:
  <login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/logon/loginForm.jsp</form-login-page>
<form-error-page>/logon/loginErrorForm.jsp</form-error-page>
</form-login-config>
</login-config>

4)声明安全性角色及与用户的映射关系
web.xml
  <security-role>
<description />
<role-name>admin</role-name>
  </security-role>

5)标准的表单(FORM认证才需要)
action的值
用户名、密码字段的名称都是固定的(规范)
<form method="POST" action="j_security_check">
            <input type="text" name="j_username">
            <input type="password" name="j_password">
           
            <input type="submit" value="Submit" name="B1">
</form>
标准的表单提交(固定不变):
action:j_security_check
name:j_username
password:j_password
分享到:
评论

相关推荐

    jsp调用javabean的问题

    2. **类型转换异常**:在使用EL表达式时,如果没有正确地处理JavaBean的返回类型,可能会出现`ClassCastException`。 3. **空指针异常**:如果在JavaBean未实例化或属性未初始化时就尝试访问,会出现`...

    在JSP中调用JavaBean实现Web数据库访问.pdf

    ### 在JSP中调用JavaBean实现Web数据库访问的关键知识点 #### 1. JSP与数据库访问背景 在Web开发领域,JSP(Java Server Pages)作为一种动态网页技术,广泛应用于构建交互式网站。数据库访问作为JSP应用程序的...

    jsp调用javabean实例

    ### JSP调用JavaBean实例解析 #### 一、概述 在Web开发中,JavaServer Pages(JSP)与JavaBean结合使用是一种常见的模式。JavaBean作为一种组件技术,主要用于封装数据和逻辑,使得它们可以被其他Java应用程序复用...

    JSP源码——jsp+servlet+javaBean实现MVC_jspmvc.zip

    【JSP源码——jsp+servlet+javaBean实现MVC】是基于Java Web技术构建的一种经典MVC(Model-View-Controller)模式的应用实例。在Web开发中,MVC模式被广泛采用,它将应用程序的业务逻辑、数据处理和用户界面分离,...

    JSP+Sevlet+javabean实现网站商品分类

    在构建Web应用程序时,"JSP+Servlet+JavaBean"是一种经典的MVC(Model-View-Controller)架构模式,常用于实现动态网站的功能。在这个特定的项目中,"JSP+Sevlet+javabean实现网站商品分类"是关于如何使用这些技术来...

    利用Javabean+JSP 实现文件的上传、显示、下载

    综上所述,利用Javabean和JSP实现文件的上传、显示和下载涉及到了HTTP请求处理、文件I/O、数据库操作、安全性控制等多个方面,是一个典型的Java Web应用场景。在实际项目中,还可以结合Servlet、MVC框架(如Spring ...

    mysql分页 jsp实现 servlet+javabean+jsp三级架构

    MySQL分页JSP实现Servlet+JavaBean+JSP三级架构 本文档对MySQL分页技术进行了总结,讨论了在JSP实现中使用Servlet+JavaBean+JSP三级架构的分页技术的实现方式。文章首先讨论了分页技术的重要性,并且提出了一个基本...

    jsp_使用JavaBean分离表示与实现

    例如,一个购物车应用中,可以通过创建一个JavaBean来处理添加商品到购物车的操作,提供如`addItem`的方法供JSP调用。当需要增加新功能,如检查库存,只需修改JavaBean,而不必改动JSP,增强了系统的可维护性和可...

    jsp+javabean实现分页

    总结来说,"jsp+javabean实现分页"项目通过结合JSP的视图渲染能力与JavaBeans的业务逻辑处理,实现了一个高效、灵活的分页解决方案。对于初学者,理解这个项目的代码结构和工作流程,有助于深入掌握Web开发中的数据...

    通过jsp+javabean实现猜数字游戏

    通过这个项目,开发者可以学习到如何在JSP中使用Java表达式语言(EL)来访问JavaBean的属性,如何在Servlet或JSP中调用JavaBean的方法,以及如何在MyEclipse这样的IDE中进行项目管理和调试。此外,还可以了解到组件化...

    基于JSP+Servlet+JavaBean实现的图书管理系统

    综上所述,基于JSP+Servlet+JavaBean的图书管理系统是一个典型的Web应用实例,它融合了前端展示、后端处理和数据存储等多个环节,为学习Java Web开发提供了实践平台。通过这个项目,开发者可以深入理解Web开发的基本...

    JSP学习笔记 jsp学习资料

    本资料包“JSP学习笔记”提供了丰富的学习资源,适用于初学者和有一定经验的开发者,用以提升对JSP的理解和应用能力。 ### 1. JSP基本概念 - **页面组成**:JSP页面由静态内容(HTML、CSS、JavaScript)和动态内容...

    编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC

    编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean...

    jsp+servlet+javaBean实现MVC源码

    jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+...

    jsp+servlet+javabean编写的简单的程序调用

    在Java Web开发中,`JSP...总的来说,`jsp+servlet+javabean`的模式是经典的Java Web开发架构,它们相互协作,实现了从用户交互到后端处理再到页面展示的完整流程。理解这种模式对于任何Java Web开发者来说都至关重要。

    jsp+JavaBean做的登录、注册、修改、查询及删除系统

    该系统是基于Web开发的一种用户管理系统,主要利用了Java服务器页面(JSP)技术和JavaBean组件,配合MySQL数据库来实现用户的基本操作,如登录、注册、信息修改、查询以及删除功能。下面将对这些关键知识点进行详细...

    jsp+Servlet+javaBean实现登录注册

    本项目“jsp+Servlet+javaBean实现登录注册”采用经典的Web开发技术栈,包括JavaServer Pages (JSP)、Servlet以及JavaBeans,结合MySQL数据库,利用集成开发环境myEclipse进行开发。下面将详细阐述这些知识点。 1. ...

    运用JSP与JavaBean实现的BBS

    【标题】:“运用JSP与JavaBean实现的BBS” 【描述】:“运用JSP与JavaBean实现了次项目”表明这是一个基于Web的论坛系统(BBS),它利用了JavaServer Pages(JSP)技术和JavaBean组件来构建。JSP是Java平台上的...

    jsp+servlet+javaBean实现MVC

    在Java Web开发中,"jsp+servlet+javaBean实现MVC"是一种常见的设计模式,用于构建动态、数据驱动的Web应用程序。MVC(Model-View-Controller)模式旨在分离业务逻辑、用户界面和数据管理,使得代码更易于维护和扩展...

    Jsp+JavaBean实现简单的在线购物车

    提供的"ShoppingCart.java"和相关的JSP文件(如"cart.jsp")包含了实际的实现细节,例如如何定义JavaBean类,以及如何在JSP中使用这些类来处理用户请求。 通过以上步骤,我们可以创建一个基本的JSP+JavaBean在线...

Global site tag (gtag.js) - Google Analytics