JSP学习笔记.docx
- 文档编号:24050218
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:26
- 大小:465.24KB
JSP学习笔记.docx
《JSP学习笔记.docx》由会员分享,可在线阅读,更多相关《JSP学习笔记.docx(26页珍藏版)》请在冰豆网上搜索。
JSP学习笔记
JSP学习笔记
(一)-----概述
1.JSP是JavaServerPages的简写。
2.用JSP开发的Web应用是跨平台的.
3.JSP技术是Servlet技术的扩展。
Servlet是平台无关的,100%纯Java的Java服务端组件。
4.下面就是一个简单的JSP页面:
<!
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD><TITLE>欢迎访问网上商店</TITLE></HEAD>
<BODY>
<H1>欢迎</H1>
<SMALL>欢迎,
<!
--首次访问的用户名字为"NewUser"-->
<%out.println(Utils.getUserNameFromCookie(request));%>
要设置帐号信息,请点击
<AHREF="Account-Settings.html">这里</A></SMALL>
<P>
页面的其余内容。
.
</BODY></HTML>
5.下面是JSP和其他类似或相关技术的一个简单比较:
1).JSP和ActiveServerPages(ASP)相比
Microsoft的ASP是一种和JSP类似的技术。
JSP和ASP相比具有两方面的优点。
首先,动态部分用Java编写,而不是VBScript或其他Microsoft语言,不仅功能更强大而且更易于使用。
第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。
2).JSP和纯Servlet相比
JSP并没有增加任何本质上不能用Servlet实现的功能。
但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。
更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:
比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
3).JSP和服务器端包含(Server-SideInclude,SSI)相比
SSI是一种受到广泛支持的在静态HTML中引入外部代码的技术。
JSP在这方面的支持更为完善,因为它可以用Servlet而不是独立的程序来生成动态内容。
另外,SSI实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问数据库的“真正的”程序。
4).JSP和JavaScript相比
JavaScript能够在客户端动态地生成HTML。
虽然JavaScript很有用,但它只能处理以客户端环境为基础的动态信息。
除了Cookie之外,HTTP状态和表单提交数据对JavaScript来说都是不可用的。
另外,由于是在客户端运行,JavaScript不能访问服务器端资源,比如数据库、目录信息等等。
JSP学习笔记
(二)-----使用Tomcat运行JSP文件
有些网友不知道怎么才能运行自己的JSP文件,我在这里简单介绍一下,给大家提供一点参考:
1.下载并安装tomcat。
下载地址:
http:
//jakarta.apache.org/tomcat
2.编写自己的JSP网页和Java对象。
3.配置自己的Web应用。
配置方法:
在TOMCAT_HOME/conf/server.xml文件中加入一行:
其中,TOMCAT_HOME是tomcat的主目录,appName是你的Web应用的名称。
4.将你的jsp文件、html文件、image文件拷贝到TOMCAT_HOME/webapps/appName目录下。
5.编译你的java文件。
6.将编译好的class文件拷贝到TOMCAT_HOME/webapps/WEB-INF/classes目录下。
也可将class文件打包成jar文件放到TOMCAT_HOME/webapps/WEB-INF/lib目录下。
7.ALLISOK!
你可以在你的浏览器上看到你的成果了:
http:
//localhost:
8080/appName/youjsp.jsp
其中,appName是你配的Web应用名称,youjsp.jsp是你编写的jsp文件名。
JSP学习笔记(三)-----使用JSP处理用户注册和登陆
1.这是一个JSP实例,由四个JSP页面组成,处理用户的注册和登陆信息2.首先是login.jsp,代码如下:
<html>
<center>
<formmethod=getaction="http:
//127.0.0.1:
8000/jsp/test.jsp">
username<inputtype=textname=username>
<br><br>
password<inputtype=passwordname=pass>
<br><br>
<inputtype=submitvalue="注册">
</form>
<formmethod=getaction="http:
//127.0.0.1:
8000/jsp/test3.jsp">
username<inputtype=textname=username>
<br><br>
password<inputtype=passwordname=pass>
<br><br>
<inputtype=submitvalue="登陆">
</form>
<br>
</center>
</html>
3.test.jsp代码如下:
(主要处理用户注册,将注册信息插入数据库)
<html>
<%@pagelanguage="java"import="java.sql.*"%>
yourusernameis:
<%=request.getParameter("username")%>
<br><br>
yourpasswordis:
<%=request.getParameter("pass")%>
<br><br>
<%
Stringname=request.getParameter("username");
Stringpass=request.getParameter("pass");
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectiondbcon=DriverManager.getConnection("jdbc:
odbc:
test","sa","");
PreparedStatementstat=dbcon.prepareStatement(
"insertloginvalues(?
?
)");
stat.setString(1,name);
stat.setString(2,pass);
stat.executeUpdate();
out.println("<br><br><B>insertsuccessful</B>");
}
catch(Exceptione)
{
out.println(e);
}
%>
<b>Clickheretoviewallpeople</b>
<formmethod=getaction="http:
//127.0.0.1:
8000/jsp/test2.jsp">
<inputtype=submitvalue="--->">
</form>
</html>
4.test2.jsp,代码如下:
(处理当用户注册成功之后可以查看所有的注册用户名单)
<html>
<%@pagelanguage="java"import="java.sql.*"%>
<%try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectiondbcon=DriverManager.getConnection("jdbc:
odbc:
test","sa","");
PreparedStatementstat=dbcon.prepareStatement(
"select*fromlogin");
ResultSetresult=stat.executeQuery();
%>
<tableborder=2>
<%
while(result.next())
{
%>
<tr><td><%=result.getString
(1)%><td></tr>
<%
}
%>
</table>
<%
}
catch(Exceptione)
{
out.println(e);
}
%>
</html>
5.test3.jsp代码如下:
(处理用户登录信息)
<html>
yourusernameis:
<%=request.getParameter("username")%>
<br><br>
yourpasswordis:
<%=request.getParameter("pass")%>
<br><br>
<%@pagelanguage="java"import="java.sql.*"%>
<%
Stringname=request.getParameter("username");
Stringpass=request.getParameter("pass");
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectiondbcon=DriverManager.getConnection("jdbc:
odbc:
test","sa","");
PreparedStatementstat=dbcon.prepareStatement(
"select*fromloginwhereusername=?
andpassword=?
");
stat.setString(1,name);
stat.setString(2,pass);
ResultSetresult=stat.executeQuery();
if(result.next())
{
out.println("LoginSuccessful");
}
else
{
out.println("LoginError");
}
}
catch(Exceptione)
{
out.println(e);
}
%>
6.此外还需要一个名为login的数据库,只需要两个列username,password就可以了
先注册,用户名33,密码33
注册成功
察看注册用户
登陆成功
JSP学习笔记(四)-----JSP动作的使用
1.该实例主要告诉我们怎么样在JSP代码中使用JSP动作,例如<jsp:
forward>
2.该实例需要四个文件:
login.jsp,test.jsp,ok.htm,no.htm
3.首先看一下login.jsp
<html>
<center>
<formmethod=getaction="http:
//127.0.0.1:
8000/test.jsp">
username<inputtype=textname=username>
<br><br>
password<inputtype=passwordname=password>
<br><br>
<inputtype=submitvalue="确定">
</form>
</center>
</html>
4.test.jsp代码如下:
<html>
<%
Stringusername=request.getParameter("username");
if(username.trim().equals("abc"))
{%>
<jsp:
forwardpage="ok.html"/>
<%}
else
{%>
<jsp:
forwardpage="no.html"/>
<%}
%>
</html>
5.ok.htm和no.htm非常简单,随便写写:
<html>ok</html>
<html>no</html>
6.最后进行配置,非常简单:
把login.jsp,test.jsp,ok.htm,no.htm放在j2ee的public_html中就可以了,不需要启动J2EE部署器了,这是一个简单方法
7.运行效果是当你输入用户名为abc时,页面会自动跳转到ok.htm页面,否则跳到no.htm页面
JSP学习笔记(五)-----JSP中使用JavaBean
1.该实例主要告诉我们怎么样在JSP代码中调用JavaBean构件
2.使用JavaBean的优点是简化了JSP代码,界面代码和逻辑代码互相分离,便于程序员查看和调试
3.该实例需要五个文件:
login.jsp,test.jsp,userbean.class
4.首先看一下login.jsp
<html>
<center>
<formmethod=postaction="http:
//127.0.0.1:
8000/test.jsp">
username<inputtype=textname=username>
<br><br>
password<inputtype=passwordname=password>
<br><br>
<inputtype=submitvalue="注册">
</form>
</center>
</html>
5.test.jsp代码如下:
<html>
<jsp:
useBeanid="hello"class="userbean"scope="session"/>
<jsp:
setPropertyname="hello"property="*"/>
yourusernameis:
<jsp:
getPropertyname="hello"property="username"/>
<br><br>
yourpasswordis:
<jsp:
getPropertyname="hello"property="password"/>
<br><br>
<%
out.println(hello.insert());
%>
</html>
6.JavaBean构件userbean.java代码如下:
importjava.sql.*;
publicclassuserbean
{
privateStringusername;
privateStringpassword;
publicvoidsetUsername(Stringusername)
{
this.username=username;
}
publicvoidsetPassword(Stringpassword)
{
this.password=password;
}
publicStringgetUsername()
{
returnusername;
}
publicStringgetPassword()
{
returnpassword;
}
publicStringinsert()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectiondbcon=DriverManager.getConnection("jdbc:
odbc:
test","sa","");
PreparedStatementstat=dbcon.prepareStatement(
"insertloginvalues(?
?
)");
stat.setString(1,username);
stat.setString(2,password);
stat.executeUpdate();
return"success";
}
catch(Exceptione)
{
System.out.println(e);
returne.toString();
}
}
}
7.配置方法如下:
login,test放在j2ee的public_html中,userbean.class放在j2ee\lib\classes中
JSP学习笔记(六)-----在多个JSP页面之间传递参数
1.怎么在多个JSP页面之间进行参数传递?
需要使用JSP的内置作用域对象session。
利用它的两个方法setAttribute(),getAttribute()
2.下面的这个实例实现了把第一个JSP页面的参数传递给第三个页面的功能
3.代码如下:
1.jsp
<html>
<formmethod=getaction=2.jsp>
what'syourname<inputtype=textname=username>
<inputtype=submitvalue=submit>
</form>
</html>
4.2.jsp
<html>
<formmethod=postaction="3.jsp?
pass=11">
<%
Stringname=request.getParameter("username");
session.setAttribute("username",name);
%>
Yournameis:
<%=request.getParameter("username")%>
<br>what'syourhobby<inputtype=textname=hobby>
<inputtype=submitvalue=submit>
</form>
</html>
5.3.jsp
<html>
yournameis:
<%=session.getAttribute("username")%>
<br>
yourhobbyis:
<%=request.getParameter("hobby")%>
<br>
yourpasswordis:
<%=request.getParameter("pass")%>
<br>
</form>
</html>
JSP学习笔记(七)-----猜数字游戏
1.这是一个猜数字的游戏,通过使用JSP调用JavaBean
2.需要两个文件,number.jsp和NumberGuessBean.java
3.先看number.jsp代码:
<html>
<jsp:
useBeanid="number"class="NumberGuessBean"scope="session"/>
<jsp:
setPropertyname="number"property="*"/>
<%
if(number.getNumGuesses()==0)
{
%>
<B>WelcometotheNumberGuessgame.</B>
<br>
<B>I'mthinkingofanumberbetween1and100.</B>
<br>
<b>What'syourguess?
</b>
<formmethod=post>
<inputtype=textname="guess">
<inputtype=submitvalue=submit>
</form>
<%
}
elseif(number.getSuccess())
{
%>
Congratulations!
Yougotit.Andafterjust<%=number.getNumGuesses()%>tries.
Careto<ahref=number.jsp>tryagain</a>?
<%
number.reset();
}
else
{
%>
Goodguess,butnope.Try<%=number.getHint()%>.Youhavemade<%=number.getNumGuesses()%>guesses.
<br>I'mthinkingofanumberbetween1and100.
<br>
What'syourguess?
<formmethod=post><inputtype=textname="guess">
<inputtype=submitvalue=submit>
</form>
<%
}
%>
</html>
4.NumberGuessBean.java代码如下:
importjava.util.*;
publicclassNumberGuessBean{
intanswer;
booleansuccess;
Stringhint;
intnumGuesses;
publicNumberGuessBean(){
reset();
}
publicvoidsetGuess(Stringguess){
numGuesses++;
intg;
try{
g=Integer.parseInt(guess);
}
catch(NumberFormatExceptione){
g=-1;
}
if(g==answer){
success=true;
}
elseif(g==-1){
hint="anumbernexttime";
}
elseif(g<answer){
hint="higher";
}
elseif(g>answer){
hint="lower";
}
}
publicbooleangetSuccess(){
returnsuccess;
}
publicStringgetHint(){
return""+hint;
}
publicintgetNumGuesses(){
returnnumGuesses;
}
publicvoidreset(){
answer=Math.abs(newRandom().nextInt()%100)+1;
success=false;
numGuesses=0;
}
}
JSP学习笔记(八)-----include的运用
1.向JSP页面中插入指定的页面方法有两种:
JSP命令<%@include%>
JSP动作<jsp:
include/>
2.a.jsp代码如下:
<html>huanghui
<%@includefile="b.jsp"%>
<jsp:
includepage="b.jsp"flush="true"/>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 学习 笔记