使用JSP处理HTML表单
jsp常见错误分析

异常
javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN
Jsp常见异常(转)
异常
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)
可能原因
action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在 JSP文件中使用 <html:form action="Login.do".将表单提交给
异常
javax.servlet.jsp.JspException:
Cannot
find
bean
org.apache.struts.taglib.html.BEAN in any scope
Probable Causes
试图在Struts的form标记外使用form的子元素。这常常发生在你在 </html:form>后面使用Struts的html标记。
<forward name="userhome" path="/user/userhome.jsp"/>
----------------------------------------------------------------------------------------------------------------
jsp心得体会

jsp心得体会JSP(Java Server Pages)是一种用于动态生成HTML、XML等文档的服务器端技术。
通过嵌套在HTML中的Java代码,可以动态地生成包含变量、控制流语句和数据库交互的网页。
在学习JSP的过程中,我收获了很多,并对这门技术有了更深入的了解和体会。
首先,学习JSP让我深入了解了Web开发的基本原理。
在传统的Web开发中,前端负责展示页面,后端负责处理业务逻辑和数据交互。
而JSP作为后端技术,通过嵌套在HTML页面中的Java代码,实现了动态生成页面的功能。
这让我明白了前后端分离的重要性和优势,以及后端如何与前端进行交互,实现动态网页的生成。
其次,JSP让我学会了如何处理客户请求和生成响应。
通过使用JSP内置的对象(如request、response、session等),我可以获取和传递客户端的数据,处理表单提交、验证用户输入等操作。
与此同时,我还学会了如何生成响应,将动态生成的内容回传给客户端。
这不仅提高了用户体验,还使得后端和前端的交流更加高效。
另外,学习JSP也让我掌握了数据库交互的技巧。
通过使用JDBC(Java Database Connectivity)技术,我可以连接数据库,进行数据的增删改查操作。
这对于许多实际项目来说至关重要,因为数据的存储和管理是业务处理的基础。
学习JSP让我了解了如何执行SQL语句、处理结果集,并与前端进行数据交互,实现数据的展示和修改。
此外,JSP还提供了大量的标签库和函数库,可以帮助我更加方便地开发和维护网页。
比如,通过使用标签库,我可以将重复的代码抽象为标签,减少重复劳动,并提高代码的可读性。
而函数库则提供了各种常用的函数,如日期格式化、字符串处理等,可以更加高效地编写代码。
在学习JSP的过程中,我也遇到了一些挑战和问题。
首先,JSP的语法相对复杂,需要熟悉Java的基本语法和Web开发的相关知识,才能更好地理解和运用。
其次,JSP代码嵌套在HTML中,对于大型项目来说,代码的可维护性和可读性可能会受到影响。
JSP期末选择题大全

1.在JSP中如果要导入java.io.* 包,应该使用_________A______指令。
A. pageB. taglibC. includeD. forward2.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page 指令的__D______属性。
A. ExceptionB. isErrorPageC. errorD. errorPage3.在MVC模式中,核心内容为____C____。
A. viewB. controlC. modelD. 不确证4.在javaScrpt中window对象的_____C_________方法用于打开一个新窗口。
A. openWindow()B. window()C. open()D. close()5.在javaScrpt中window对象的___D____方法用于关闭当前窗口。
A. open()B. confirm()C. alert()D. close()6.java.io.File对象的_____B__方法可以新建一个文件。
A. delete()B. createFile()C. mkdir()D. createNewFile()7.在JSP应用程序中要求删除所有photo目录中的的文件,但是保留文件夹,下列代码中空缺位置最适合的选项为______A_____________。
String path=request.getRealPath("photo");File fp1=new File(path);File[] files=fp1.listFiles();for(int i=0;i<files.length;i++){if(__________________________){files[i].delete();}}A. files[i].isFile()B. files[i].isDirectory()C. !files[i].isFile()D. ! files[i].isDirectory() 8.sesson对象的_______D___方法用于判断是否为开始新会话。
jsp的功能

jsp的功能JSP(JavaServer Pages)是一种用来开发动态Web页面的Java技术。
它可以将Java代码嵌入到HTML文档中,以实现更丰富的页面交互和动态数据展示功能。
以下是JSP的一些常见功能。
1. 动态页面生成:JSP可以根据用户请求,动态生成HTML页面,并将页面内容返回给浏览器。
这使得网页内容可以根据不同的条件和参数进行自适应的展示。
开发者可以在JSP中使用Java代码来处理用户请求,调用数据库、调用其他Java对象等。
2. 数据库访问:JSP可以直接连接数据库,并执行数据库操作。
通过使用Java的数据库连接API,JSP可以从数据库中查询、添加、修改和删除数据,然后将结果展示在Web页面上。
这可以实现数据的持久化和动态更新。
3. 表单处理:JSP可以处理用户提交的表单数据。
通过在JSP页面中定义HTML表单元素,并在表单的提交动作中指定JSP的URL,JSP可以接收表单数据,并对数据进行验证、处理和存储。
这些可以用来实现用户注册、登录、数据录入等功能。
4. 条件判断和循环:JSP支持使用Java的条件语句和循环语句。
这使得可以在JSP页面中根据不同的条件展示不同的内容,或者重复展示一段代码块。
通过使用if语句、switch语句和for循环等,可以实现更复杂的页面逻辑。
5. 页面重定向和转发:JSP可以将请求重定向到其他页面,或者将请求转发到另一个JSP或Servlet。
这使得可以在不同的页面之间进行跳转和协作,实现业务流程的分步处理。
6. 用户认证和会话管理:JSP提供了与用户认证和会话管理相关的内置对象。
通过这些对象,可以实现用户登录、注销、用户角色权限控制等功能。
同时,JSP还支持在页面级别和应用程序级别上进行会话管理。
7. 页面模板和复用:JSP支持使用页面模板和标签库进行页面复用。
可以将多个JSP页面中的公共部分抽取出来,形成一个模板文件,然后在其他JSP页面中引用该模板文件。
JSP 使用HTML

JSP 使用HTML从事Web开发最基本的要求是要掌握HTML,可以这样认为:JSP最终目的也是动态生成HTML。
因此本练习使用HTML来实现一个简单的用户注册页面,读者应该从中了解HTML页面的结构,以及表格与表单标签的使用。
练习步骤如下:(1)打开记事本创建HTML文件:test.html,首先创建HTML文件基本框架,代码如下所示:(2)在上述代码的“html代码省略部分”位置创建表单,其中使用了表格布局,代码如下所示:<input type="checkbox" name="checkbox2" value="checkbox">写作<input type="checkbox" name="checkbox3" value="checkbox">旅游</div></td> </tr><tr><td><div align="right">E-Mail:</div></td><td><div align="left"><input type="text" name="textfield4"></div></td></tr><tr><td colspan="2"><div align="center"><input type="submit" name="Submit" value="提交"><input type="reset" name="Submit2" value="重置"></div></td></tr></table></form>(3)测试。
JSP题库

14. 在传统的 HTML 页面中加入()就构成了一个 JSP 页面文件。 A. Java 程序片和 JSP 标签 B. JSP 标签 C. 用“<%”、“%>”标记符号括起来的程序 D. Java 程序片
答案:A
15. <select>用于在表单中插入一个下拉菜单,他需与()标记配合使用 A. <option> B. <item> C. <dot> D. <list>
答案:C
39. 在 servlet 里,能正确获取 session 的语句是() A. HttpSession session = response.getHttpsession(true); B. HttpSession session = response.getSession(true); C. HttpSession session = response.getHttpsession(true); D. HttpSession session = response.getSession(true);
答案:A
16. 下边哪个不是 from 的元素() A. table B. select C. textarea D. input
答案:A
17. 下列变量声明在()范围内有效。<%! Date dateTime;int countNum; %> A. 从定义开始处有效,被多个客户共享 B. 在整个页面内有效,被多个客户共享 C. 在整个页面有效,客户之间不共享 D. 从定义处开始有效,客户之间不共享
答案:C
31. Servlet 中,HttpServeltResponse 的()方法用来把一个 Http 请求重定向到另外的 URL A. redirectURL() B. redirectResponse()
用jsp程序对数据库表进行增、删、差、改操作

pstmt.setString(6,request.getParameter("Phone")) ;
pstmt.setFloat(7,Float.parseFloat(Grade)) ;//这个地方的问题要牢记
pstmt.setFloat(8,Float.parseFloat(Use)) ;//这个地方的问题要牢记
生 日 费:<input type="text"name="Use"><br>
<input type="submit"value="添加">
<input type="reset"value="重置">
</font>
</form>
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
int x = pstmt.executeUpdate() ;//这个用法牢记
%>
<%
if(x>=1){
flag = true;
%>
添加信息成功!
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
<%
}
%>
<%
}catch(Exception e){
e.printStackTrace() ;
JSP期末考试复习资料

1-2 JSP中可重复使用的组件有哪些?JavaBean/JSP标准标签/自定义标签1—3 什么是JSP的预编译特征?答:JSP页面在被服务器执行前,都是已经被编译好的,并且通常只进行一次编译,即在JSP 页面被第一次请求时进行编译,在后续的请求中如果JSP页面没有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度。
1—8 开发JSP程序可采用哪几种开发模式?分别介绍他们的优缺点。
答:第一种:单纯的JSP页面编程优点是容易实现;缺点是程序结构混乱,维护不便.第二种:JSP+JavaBean编程优点是结构比较清晰;缺点是将流程控制放到JSP中,JSP不能单纯作为显示功能第三种:JSP+JavaBean+Servlet编程优点是层次关系明显、组件分工明确;缺点是对开发人员能力要求较高,不适合JSP初学者.2—2 什么是成员变量和局部变量?他们的区别是什么答:成员变量是在类体中变量定义部分所声明的变量;局部变量是在方法体重声明的变量和方法的参数两者的区别在于有效范围不同,成员变量在整个类内都有效,而局部变量只在定义他的成员方法内才有效。
2-3 如何创建、使用并销毁对象?答:创建对象的方法:类名对象名;对象名 = new 构造方法名([参数列表]);或者:类名对象名 = new 构造方法名([参数列表]);使用对象的方法:可以通过对象来引用其成员变量,并改变成员变量的值,而且还可以通过对象来调用其成员方法。
通过使用运算符“.”实现对成员变量的访问和成员方法的调用。
销毁对象的操作由Java提供的垃圾回收机制自动完成 .不需要手工完成销毁对象操作。
或者调用对象的finalize()方法。
3-1 JSP页面由哪些元素组成?〈!—— JSP中的指令标识 -->〈%@ page language=”java" contentType=”text/html;charset=gb2312”%〉<%@ page import="java。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.2.1 处理隐藏域标签
• 隐藏域标签语法如下: • <input type=―hidden‖ name=―…‖ value=―…‖>
7.2.2 处理TextArea
• 处理的标签语法如下: • <textArea name =―TextAreaName‖ col=―ColsNum‖ rows=―RowsNum‖></textarea> • 例sendTextArea.jsp用于输入数据文本 • TextArea.jsp用于处理和显示结果
• 4、Get传输的数据量小,这主要是因为 受URL长度限制;而Post可以传输大量的 数据,所以在上传文件只能使用Post。 5、Get限制Form表单的数据集的值必须 为ASCII字符;而Post支持整个ISO10646 字符集。 6、Get是Form的默认方法。
• 第一种 GET • 它将表单内容附加URL之后,中间用问号连接,然后 传送至指定的程序做处理。 • http://specifiedURL?Name1=Value&Name2=Value2 • 在hello user 实例中,使用的是GET进行数据传送,表 单数据传给hellouser.jsp页面的方式如下: • http://hellouser.jsp?username=liuyongpo • 因为hellouser.jsp页面接收到数据后重定向到了 response.jsp页面,所以地址栏看不到上述信息。 • 第二种 POST,这个方法是将表单内容作为一个数据体 而不是URL的一部分传送给服务器的。所以URL中看 不到表单的内容。
第7章 使用JSP处理HTML表单
• 7.1在JSP中创建与处理HTML表单 • 7.2 与Form相关的常用标签的处理方法 • 7.3 表单数据的类型转换
7.1在JSP中创建与处理HTML表单
• 首先,JSP引擎把存放在request对象中的数据 发到JSP页面指定的服务器端的组件 (JavaBeans组件, servlet,或者enterprise bean), 组件收到这些个数据以后,有可能再把这些数 据存到数据库或者其他的地方存放起来,同时, 返回一个response对象给JSP引擎。这时JSP引 擎和Web服务器再发送一个整理好的完整的 页 面给客户,也就是我们在浏览器上看到的结果。 客户和服务器间的通信协议可以用HTTP,当 然也可以用其他协议。
• 另外 • 用get方法传递中文有问题,用post没有问题。 pageEncoding这个只对post起作用。get方法提 交时,大家可以从地址栏里看到提交的参数, 这是因为get方法传递是作为报文头提交的,而 pageEncoding对报文头是没有作用的,所以仍 然按照 iso8859-1编码,才出现了乱码问题。而 post提交的是form表单的内容,pageEncoding指 定了它的编码,所以他会按照指定编码传递。
•
1、Get是用来从服务器上获得数据,而Post是用来向 服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添 加到action所指向的URL后面,并且两者使用“?‖连接, 而各个变量之间使用“&‖连接;Post是将表单中的数 据放在form的数据体中,按照变量和值相对应的方式, 传递到action所指向URL。 3、Get是不安全的,因为在传输过程,数据被放在请 求的URL中,而如今现有的很多服务器、代理服务器 或者用户代理都会将请求URL记录到日志文件中,然 后放在某个地方,这样就可能会有一些隐私的信息被 第三方看到。另外,用户也可以在浏览器上直接看到 提交的数据,一些系统内部消息将会一同显示在用户 面前。Post的所有操作对用户来说都是不可见的。
7.1.4 使用JavaBean处理 表单数据
• HTML表单的数据传到JavaBean里需要两 个工作: • 第一个工作用<jsp:useBean>标签创建或 者定位到JavaBean, • 第二个工作在JavaBean里面用 <jsp:setProperty>设置属性值。
7.1.5 将处理结果返回给客户端
• 表单有以下三个重要的属性 • action属性:属性定义了当表单被提交时数据被送往 何处,如果为空,就提交给当前页面。 • method属性:指定传输方式,GET或者POST • enctype属性:指定将数据回发到服务器时浏览器使 用的编码类型。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能用于文件 上传;只有使用了multipart/form-data,才能完整的 传递文件数据在使用表单传送数据的时候,如果 form 加了enctype="multipart/form-data" 这个属性, 那么表单请求传到另一个jsp或servlet 里时是不能用 request.getParameter()来获取到各个表单元素的值的。 <form name="form1" action="test.jsp" method="po st" enctype="multipart/form-data"> 是上传二进制数据
7.2.3 处理Radio标签
• Radio标签的语法格式如下: • <input type=―radio标签
• Checkbox标签的语法如下: • <input type=―checkbox‖>
7.2.5 处理Select标签
• • • • Select标签的语法如下: <select name=―Name‖> <option value=―Value‖>选项</option > </select>
7.1.3 使用GET/POST方法 传递参数
• 在B/S应用程序中,前台与后台的数据交互, 都是通过HTML中Form表单完成的。Form提供 了两种数据传输的方式——get和post。虽然它 们都是数据的提交方式,但是在实际传输时确 有很大的不同,并且可能会对数据产生严重的 影响。虽然为了方便的得到变量值,Web容器 已经屏蔽了二者的一些差异,但是了解二者的 差异在以后的编程也会很有帮助的。 Form中的get和post方法,在数据传输过程中 分别对应了HTTP协议中的GET和POST方法。 二者主要区别如下:
图7.1 数据流在服务器和客户之间的传递
response Client response JSP Container& Web Server JSP File response
request
Component
request
request
7.1.1 一个动态交互的hello user实例
• 下面是一个简单的动态交互的hello user实例, 该实例共包含3个文件。 • 一个JavaBean(NameHandler.java)用来传递数据。 • 两个JSP文件(hellouser.jsp和reponse.jsp) hellouser.jsp用来让客户通过HTML表单向JSP 引擎输入数据; reponse.jsp用来在浏览器上返回结果。
7.2 与Form相关的常用 标签的处理方法
• FORM中常用的标签主要有以下几种类型: • 文本框(Text)、隐藏域(Hidden)、密码框 (Password)、单选框(Radio)、复选框 (Checkbox)、下拉选择框(Select)、文件上传框 (File)和文本区(TextArea)。 • 其中文本框、隐藏域、密码框、单选按钮、单选下拉 选择框文本区使用request内置对象的getParameter方法 获取标签内的数据,如果指定的标签名存在,但没有 值, getParameter 返回空字符串;如果指定的标签名不 存在,返回null。 • 复选框和多选下拉选择框使用request内置对象的 getParameterValues方法获取包含选中选项的数组。
JSP操纵HTML表单步骤
1、 写JSP原文件,创建一些HTML的表单并命名。 2、 在Java文件里写Bean,定义属性,GET或者SET 方法来配合已经被你指定好名字的表单。 3、 回到JSP原文件中,增加<jsp:useBean>标签来创 建一个或者调用一个现成的Bean。 4、 增加<jsp:setProperty>标签设置HTML表单中需要 SET方法的Bean的属性。 5、 增加<jsp:getProperty>标签设置HTML表单中需 要GET方法的Bean的属性。 6、 如果需要处理更多的用户数据,用request对象。
• 用户将数据传到JavaBean,一旦想重新得到数 据,并在JSP页面中显示出来,就要将处理结 果返回给客户端。要实现这一步,则需要 <jsp:getProperty>标签: • <jsp:getProperty name=―mybean‖ property=―usename‖/> • 另外,还可以使用表达式直接调用Bean中的方 法获得属性值: • <%=mybean.getUsername()%>
7.2.6 JSP处理与Form相关的常 用标签实例
• userInfo.html包含表单。
文本输入标签(Text) <input type="text" name="Name" size="15" maxlength="15"> 密码输入标签(Password) <input type="password" name="Password" size="15" maxlength="15"> 单选按钮输入标签(Radio) <input type="radio" name="Sex" value="Male" checked>男 <input type="radio" name="Sex" value="Female">女 复选框输入标签(Checkbox) <input type="checkbox" name="Habit" value="Read"> 看书 <input type="checkbox" name="Habit" value="Football"> 足球 <input type="checkbox" name="Habit" value="Travel"> 旅游 <input type="checkbox" name="Habit" value="Music"> 听音乐 <input type="checkbox" name="Habit" value="Tv"> 看电视