企业级应用系统开发平台3Word下载.docx
- 文档编号:22061901
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:16
- 大小:62.65KB
企业级应用系统开发平台3Word下载.docx
《企业级应用系统开发平台3Word下载.docx》由会员分享,可在线阅读,更多相关《企业级应用系统开发平台3Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
在Scriptlet中可以定义全局变量、方法、类。
%=%>
在Scriptlet中主要的功能是输出一个变量或一个具体的常量,有时也将其称为表达出。
题目1.2:
JSP指令标记
掌握怎样在JSP页面中使用page指令设置contentType的值;
使用include指令在JSP页面中静态插入一个文件的内容。
1、Include指令在解释为servlet时的代码片段说明了什么?
如果换成动作include会怎么样?
答:
Jsp页面不能原封不动地被传送给浏览器,所有的jsp元素都必须首先由服务器进行处理。
这是通过将jsp页面转达化成servlet,然后执行这个servlet来完成的。
服务器需要一个jsp容器来处理jsp页面。
jsp容器通常以servlet的形式来实现,这个servlet经过配置,可以处理对jsp页面的所有请求。
Jsp容器负责将jsp页面转化成servlet(称为jsp页面实现类?
JSPPageimplementationclass),并编译这个servlet。
题目1.3:
JSP动作标记
掌握怎样在JSP页面中使用include标记动态加载文件;
使用forward动作标记实现页面的转向。
1、与题目二比较,动作和指令include哪个使用更方便?
两者的区别和联系?
两者都有包含的意思,并且从运行的结果上来看,两者的功能也非常类似,但是两者的运行过程相差很大。
(1)联系:
<
%@include%>
指令是编译时语法,也就是在编译的时候,把指令所指向的目标文件的内容拷贝到指令所在的位置,替换指令,最终形成一个文件,在运行的时候只有一个文件。
jsp:
include>
动作是运行时语法,包含<
动作的文件在执行到这个标签的时候,会转向执行标签所指向的目标文件,执行完目标文件之后,再接着执行标签后的内容,在运行的时候,涉及到两个文件,就像方法调用一样。
因为<
指令是静态的,而<
是动态的,所以如果某一段代码肯定会执行,则可以使用<
指令,如果某一段代码有可能执行,有可能不执行,需要根据运行时候的状态,这时候可以使用<
。
(2)区别:
1.静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;
而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
2.静态导入时被导入页面的编译指令会起作用;
而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
3.动态包含还可以增加额外的参数。
题目1.4:
request对象
掌握怎样在JSP中使用内置对象request
1、这个程序片段的含义是?
getParameter方法是如何设置值的?
答:
给a、b和operator分别赋值。
(1)构建你的链接,在链接里面构建你的数据。
(2)讲数据写入session或者其他容器,再servlet取。
2、<
formaction="
"
method="
post"
name=form>
中的method有几种选择,比较每种选择的不同?
Method有两种get和post。
Get请求把表单的数据显式地放在URI中,并且对长度和数据值编码有所限制;
Post请求把表单数据放在HTTP请求体中,并且没有长度限制。
题目1.5:
session对象
本题目的目的是让学生掌握怎样使用session对象存储和用户有关的数据。
1、什么才是一次session?
如何理解一次session?
Session如何读写值?
写出其对应的方法。
当浏览器访问服务器时,服务器会创建一个session对象(该对象有一个id属性,其值是唯一的,一般称之为sessionId),服务器在默认情况下,会使用cookie机制(将sessionId放到set-cookie消息头)将这个sessionId发送给浏览器;
当浏览器再次访问服务器时,会将sessionId发送给服务器,服务器依据sessionId找到之前的session对象。
三、总结
实验二JDBC
1.掌握JSP中JDBC编程的基本方法。
2.掌握JSP连接数据库的常用方法
3.数据库的顺序查询、随机查询和条件查询。
二、填空题
1、请将程序中的|代码1|~|代码3|处补充完整。
程序清单3StudentManager.java
publicvoidconnection(){//连接数据库;
try{
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
//装载驱动程序;
conn=DriverManager.getConnection(url,username,pwd);
//连接ODBC数据源studentManager
stmt=conn.createStatement();
//获得执行语句对象stmt;
}catch(ClassNotFoundExceptione1){
System.err.println("
驱动程序装载失败!
}catch(SQLExceptione2){
e2.getSQLState();
e2.getMessage();
}
}//endofconnectionmethod;
connection();
StringInsSQL;
InsSQL="
INSERTINTOstudent(学号,姓名,性别,出生年月,家庭住址,联系电话)"
+
VALUES("
+"
'
+no+"
"
+name+"
+gendar+"
+birth+"
+address+"
+tel+"
)"
;
//定制插入SQL语句字符串
stmt=con.CreateStatement();
stmt.setString(1,no);
stmt.setString(2,name);
stmt.setString(3,gender);
stmt.setString(4,birth);
stmt.setString(5,address);
stmt.setString(6,tel);
Resultrs=stmt.executeUpdate(InsSQL);
//执行将新记录插入到数据表student中;
}catch(SQLExceptione1){
System.err.println(e1.getSQLState());
finally{
close();
//关闭数据库
2、程序清单6-4是类StudentManager2的程序模板,请补充|程序段1|~|程序段5|程序段,并输入该程序StudentManager2.java,调试并运行,观察程序运行的结果。
程序清单4StudentManager2.java
·
//定义更新面板
updateInnerPanel=newStudentPanel();
updateInputLbl=newJLabel("
输入学号:
updateInputText=newJTextField(10);
updateInputText.addActionListener(newActionListener(){
publicvoidclearContent(){
viewPanel.setText("
}//将更新面板的显示内容清除;
});
//定义删除面板
deleteInnerPanel=newStudentPanel();
inputNoLable=newJLabel("
inputNoField=newJTextField(10);
inputNoField.addActionListener(newActionListener(){
publicvoidclearContent(){
deleteInnerPanel.setText("
}
//将删除面板的显示内容清除;
publicvoidviewARecord(Stringno,StudentPanelp){
//在显示面板p中,显示学号为no的学生信息
StringViewsql=”select*fromstudentwhereno=?
”;
Resultrs=stmt.executeQuery(sql);
While(rs.next()){
Stringno=rs.getSring(no);
}catch(SQLExceptione1){
操作失败"
System.err.println(e1.getSQLState()+e1.getMessage());
publicvoidupdateRecord(Stringno){//修改学号为no学生的记录;
StringUpdatesql="
updatestudentsetname=?
gender=?
birth=?
address=?
tel=?
whereno=?
stmt.setString(1,name);
stmt.setString(2,gender);
stmt.setString(3,birth);
stmt.setString(4,address);
stmt.setString(5,tel);
stmt.setString(6,no);
Resultrs=stmt.executeUpdate(sql);
}finally{
publicvoiddeleteRecord(Stringno){//删除学号为no学生的记录;
Stringdeletesql="
deletefromstudentwhereno=?
stmt.setString(1,no);
}
3、练习2利用PreparedStatement接口实现对student数据表的SQL操作
要求:
思考程序中,conn.rollback()语句的作用是什么?
try{
VALUES(?
?
PreparedStatementpstmt=conn.preparedStatement(InsSQL);
pstmt.setString(1,no);
pstmt.setString(2,name);
pstmt.setString(3,gendar);
pstmt.setString(4,birth);
pstmt.setString(5,address);
pstmt.setString(6,tel);
intresult=pstmt.executeUodate();
if(result==0){
conn.rollback();
return;
}
System.err.println(e1.getMessage()+e1.getSQLState());
程序中,conn.rollback()语句的作用是显式提交,完成事务操作或设置自动提交为:
false、处理事务、提交(在意外中回滚)。
实验三Struts基础及应用编程
本实验目的是希望通过编程实现用户客户登记表程序,来对Struts进行编程运用,知道Struts的配置文件struts-config.xml的配置,htmltaglib的运用,尤其是对<
html:
errors>
tag运用和理解,对于Action的控制机制和ActionForm数据处理机制,以及对于ApplicationResource.property熟练掌握,从而达到对能够运用Struts的基本技术来开发动态网页能力。
用Struts来编写和实现一个两个Form,第一个Form是注册用户名和用户密码的Form,其中包含字段有,用户,密码,密码校对,密码要求长度不能小于六位,密码里面应包含至少数字和字母,字母应包括大小写,最好密码中包含特殊字符。
第二个表是注册用户详细信息表,包括工作单位或者机构名称,邮政地址,邮政编码,单位简介,联系人名,电话,邮件等。
第一表和第二个表的关系是第一个表注册完,点击下一步就是出现第二个表的注册。
表校验成功后要显示成功信息。
1、新建一个struts的Action和ActionForm类:
helloaction.java和
helloform.java
(1)Helloaction.java的主要代码如下:
publicclasshelloactionextendsorg.apache.struts.action.Action{
privatestaticfinalStringSUCCESS="
success"
privatestaticfinalStringFAIL="
fail"
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsException{
helloformtheform=(helloform)form;
Stringname=theform.getName();
Stringaddress=theform.getAddress();
//如果name或者address有一个空的话就映射fail,其他情况映射success。
if(name.equalsIgnoreCase("
)||address.equals("
))
returnmapping.findForward(FAIL);
returnmapping.findForward(SUCCESS);
(2)helloform.java的主要代码如下:
publicclasshelloformextendsorg.apache.struts.action.ActionForm{
privateStringname;
publicStringgetAddress(){
returnaddress;
publicvoidsetAddress(Stringaddress){
this.address=address;
publicStringgetEmail(){
returnemail;
publicvoidsetEmail(Stringemail){
this.email=email;
publicStringgetPostcode(){
returnpostcode;
publicvoidsetPostcode(Stringpostcode){
this.postcode=postcode;
publicStringgetTelphone(){
returntelphone;
publicvoidsetTelphone(Stringtelphone){
this.telphone=telphone;
privateStringaddress;
privateStringpostcode;
privateStringtelphone;
privateStringemail;
publicStringgetName(){
returnname;
publicvoidsetName(Stringstring){
name=string;
publichelloform(){
super();
publicActionErrorsvalidate(ActionMappingmapping,HttpServletRequestrequest){
ActionErrorserrors=newActionErrors();
Stringthename=request.getParameter("
name"
Stringtheaddress=request.getParameter("
address"
Stringthepostcode=request.getParameter("
postcode"
Stringthetelphone=request.getParameter("
telphone"
Stringtheemail=request.getParameter("
email"
//以下是判断各个字段的值是否为空,如果为空给出提示信息。
if(thename.equalsIgnoreCase("
)){
errors.add("
newActionMessage("
error.name.required"
));
if(thepostcode.equalsIgnoreCase("
请输入邮编!
!
if(theaddress.equalsIgnoreCase("
请输入地址!
if(thetelphone.equalsIgnoreCase("
请输入电话!
if(theemail.equalsIgnoreCase("
请输入邮箱!
returnerrors;
2、新建一个注册界面welcomestruts.jsp,以及success映射的文件yes.jap和fail映射的文件no.jsp
welcomstruts.jsp的主要代码如下:
htmllang="
true"
>
head>
metahttp-equiv="
Content-Type"
content="
text/html;
charset=UTF-8"
title>
欢迎页面<
/title>
styletype="
text/css"
.content{
color:
#000000;
font-family:
宋体"
font-size:
20px;
/style>
base/>
/head>
bodystyle="
background-color:
white"
center>
//以下是建form的全部代码
/action"
styleClass="
content"
name:
textproperty="
/html:
text>
errorsproperty="
/>
br/>
address:
postcode:
telphone:
email:
errorsproperty
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业级 应用 系统 开发 平台
![提示](https://static.bdocx.com/images/bang_tan.gif)