JAVAweb开发模式

selvet开发缺陷:
页面严重缺乏可读性;
没有将页面表现和业务逻辑实现分离,维护难度增加;
本章作用:实现显示层和业务逻辑的分离;
一、在JSP中使用JAVAbean;
1.1<jsp:useBean>动作
效果:在JSP中抛弃java代码将javabean的代码显示出来;

1.1.1创建bean对象:
<jsp:useBean id="bean" class="com.lovo.bean.StudentBean" scope="session">
</jsp:useBean>
{ id: 表示当前实例化对象的引用; 这个可以直接从scope的session中对应键中取值
class:创建的实例,指向引用的包和类的名称;
scope:javaBean保存的范围,page-request-session-application
}
后台操作:】在apache文件中查看到,首先创建一个空的bean对象然后再在session中查看有没有,没有的话就自己new一个放在CONTEXT中
传统方式创建】:

1.1.2设置Bean:property:代表当前对象的属性名;
name:代表当前javebean对象;
value:代表当前的值;
静态:
<jsp:setProperty property="studentname" name="student" value="xiaoqing"/>
param:用于获取用户传过来的参数; username是传递的属性的键,在获取到这个键的值之后再设置给property-studentname;
动态获取:
<jsp:setProperty property="studentname" name="student" param=" username"/>
后台操作】:找到student对象,得到传过来的username的值设置给对象的属性studentname
动态全部获取:
传递所有的属性, 在请求的时候请求的属性名必须与javaBean的属性名保持一致,才能匹配
<jsp:setProperty property=" *" name="student"/>

1.1.3获取JAVAbean的内容:
//获取学生对象的密码;
<jsp:getProperty property=" pwd" name="student"/>

1.1.4输出bean对象:
<%= studentBean %>


作用域细节】:
page代表this的意思,在当前页面有效,设置在page中,不能在其他取
放在request中,作用域为一次 请求过程,得到响应之后,请求就消失了;
session的作用域为一个会话的 交互过程(开和关闭浏览器);session至始至终只有一个;
放在上下文中都可以获取;上下文以整个WEB工程的空间为空间。
细节】:在多线程中,session只有一个,多开的页面都使用用户的同一个session【有同步锁】;
为不造成其他页面之间的交互彼此的影响,一般使用request将数据进行传输;





JSP开发模式1:JSP+javaBean技术
javaBean:处理程序的业务、封装数据;
jsp负责:页面显示、 控制逻辑、业务对象调用;
1、将UserBean添加行为进行密码验证;
2、在jsp中直接处理业务
代码案例
【使用场景】: 适合开发小程序、小代码;在小代码中使用这种,效率很高,开发简单,无需复杂架构; 缺点:项目不好维护;
JSP开发模式2:MVC架构 (JSP+javaBean+Servlet),表达是一种架构模型。本身没有引入任何新功能,只是把开发的架构组织的更合理了;实现表现和结构分离;逻辑和表现分离。
model(模型):提供要展示的数据,包括数据和行为;【javaBean】
view(视图):主要负责模型的 数据展示;【JSP/html】
Controller(控制器):接受用户请求,委托模型进行业务处理,处理完了以后再将数据发送给视图;是一个调度员角色;【Servlet】
【代码示例】
Servlet端: 接受用户信息、委托模型进行业务处理、实现用户信息展示的调度;
【使用场景】: 适合稍大的程序、实现增删改查功能;
【优 势】:
【缺 点】:在开发大型游戏项目的时候,业务比较复杂,MVC模型用javaBean,把javaBean称为javabean组件,即负责收集封装数据,又要进行业务逻辑的处理,造成javaBean非常的庞大,在大型项目中将javabean替换为三层架构; javabean组件:域模型+业务层+持久层;


JSP开发模式3:MVC架构+三层架构:
mvc存在于三层架构的表示层,M作为域模型,贯穿三层;


【小细节】:JSP设置的时候要记得修改他的编码集为UTF-8;
readonly="readonly" 设置input只读;

【小细节】:if( opwd0.value == <%=stu.getPassWord()%> ){
window.location.href="/JavaWeb_01/ChangeServlet?id="+ <%= stu.getId() %>+"&&pwd="+opwd0.value ;
}else{
alert("密码或用户名不正确");
}
下面的黑粗可以使用,上面的红色代码不可用;字符串拼接可以用;在js中嵌套不能识别;


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值