实验二 JDBC及ServletWord文件下载.docx
《实验二 JDBC及ServletWord文件下载.docx》由会员分享,可在线阅读,更多相关《实验二 JDBC及ServletWord文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
具体的类
/servlet>
Servlet的URL映射
servlet-mapping>
上面servlet的引用名
url-pattern>
/FirstServlet<
/url-pattern>
访问servlet的url地址
/servlet-mapping>
步骤四编写代码
打开刚建好的Java类,找到protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
方法,在改变其中代码如下:
response.setCharacterEncoding("
UTF-8"
);
response.getWriter().println("
h1>
我的第一个Servlet!
!
/h1>
"
并在protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
方法中其中代码如下:
doGet(request,response);
然后保存。
步骤五部署并访问
将该工程部署到Tomcat中,并启动。
然后浏览器的地址栏中输入:
http:
//localhost:
8080/myServlet/FirstServlet
二通过Servlet进行表单处理
建立三个文件:
login.jsp:
登录页面,显示登录表单;
Check.java:
Servlet进行登录验证,若通过跳转到ok.jsp,否则跳转到login.jsp并显示错误信息;
protect/Ok.jsp被保护页面,当通过验证后显示。
login.jsp代码:
%@pagelanguage="
java"
contentType="
text/html;
charset=UTF-8"
pageEncoding="
%>
!
DOCTYPEhtmlPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
"
//www.w3.org/TR/html4/loose.dtd"
>
html>
head>
metahttp-equiv="
Content-Type"
content="
title>
Inserttitlehere<
/title>
/head>
body>
h2>
用户登录<
/h2>
h4style="
color:
red"
%
//显示错误信息
If(session.getAttribute("
errMsg"
)!
=null)
Out.println(session.getAttribute("
));
/h4>
formaction="
check"
method="
post"
用户名:
inputname="
loginName"
type="
text"
/>
br/>
口令:
passwd"
password"
inputvalue="
登录"
submit"
/form>
/body>
/html>
Check.java代码:
packagecn.servlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassCheckextendsjavax.servlet.http.HttpServletimplementsjavax.servlet.Servlet{
staticfinallongserialVersionUID=1L;
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
request.getSession().setAttribute("
"
请通过正常方式登录"
response.sendRedirect("
login.jsp"
}
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
StringloginName=request.getParameter("
Stringpasswd=request.getParameter("
if("
Tom"
.equals(loginName)&
&
123456"
.equals(passwd)){
request.getSession().setAttribute("
loginName);
response.sendRedirect("
protect/ok.jsp"
}
else{
用户名或口令错误"
protect/login.jsp"
}
}
ok.jsp代码:
h1align="
center"
%=session.getAttribute("
)%>
欢迎你回来!
三过滤器——Filter
使用Filter对protect中的所有文件进行保护,只有登录的用户才能查看。
步骤一创建Filter
通过“New”菜单,在打开“New”对话框选择“Java”→“Class”,然后点击“Next”按钮,显示如下窗口:
按图中红框填写你的窗口内容;
然后点击“Add...”按钮添加该类要实现的接口(Filter接口)如下图,在“Chooseinterfaces:
”中输入“Filter”,在“Matchingitems”列表中选择“Filter-javax.servlet...”条目,然后点击“ok”,返回到“NewJavaClass”窗口,点击“Finish”按钮完成创建。
步骤二编写代码
packagecn.filter;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
publicclassProtectFilterimplementsFilter{
@Override
publicvoiddestroy(){
}
publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,
FilterChainarg2)throwsIOException,ServletException{
javax.servlet.http.HttpServletRequestreq=(javax.servlet.http.HttpServletRequest)arg0;
ObjectloginName=req.getSession().getAttribute("
if(loginName==null){
req.getSession().setAttribute("
你尚未登录,请登录..."
javax.servlet.http.HttpServletResponseres=(javax.servlet.http.HttpServletResponse)arg1;
res.sendRedirect("
../login.jsp"
arg2.doFilter(arg0,arg1);
publicvoidinit(FilterConfigarg0)throwsServletException{
步骤二配置Filter
打开web.xml,在“<
/web-app>
”之前插入如下内容
--注册过滤器-->
filter>
<
filter-name>
protect<
/filter-name>
filter-class>
cn.filter.ProtectFilter<
/filter-class>
/filter>
--过滤器映射-->
filter-mapping>
/protect/*<
--被保护URL-->
/filter-mapping>
步骤三验证过滤器功能
重启Tomcat,在浏览器地址栏中输入“http:
8080/myServlet/ok.jsp”,正确结果是会被重定向到登录页面,并显示错误信息。
内容二JDBC的使用
在上面的工程中添加代码,完成学生信息管理。
步骤一准备数据库
在mysql中的test数据库中添加表student,字段内容如下:
字段名
类型
长度
说明
id
int
自动增长
stuID
varchar
10
学号
stuName
20
姓名
className
班级
homeAddress
200
家庭住址
步骤二添加mysql驱动
从作业管理系统下载mysql的驱动:
mysql-connector-java-5.1.13-bin.jar,并复制到工程的“WebCotent”→“WEB-INF”→“lib”目录中。
步骤三编写代码
共5个文件
connect.jsp:
被包含页面,存放数据的连接代码
%@pageimport="
java.sql.*"
%>
Class.forName("
com.mysql.jdbc.Driver"
Connectioncon=DriverManager.getConnection("
jdbc:
mysql:
3306/test"
"
root"
list.jsp:
显示学生列表;
%@includefile="
connect.jsp"
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery("
select*fromstudent"
学生信息管理系统<
h3align="
ahref="
edit.jsp"
添加学生信息<
/a>
/h3>
tableborder="
1"
width="
500"
align="
tr>
thwidth="
60"
学号<
/th>
80"
姓名<
100"
班级<
th>
家庭住址<
操作<
/tr>
while(rs.next()){
<
td>
%=rs.getString("
stuID"
/td>
stuName"
stuClass"
homeAddress"
<
ahref='
edit.jsp?
id=<
id"
'
编辑<
delete.jsp?
删除<
rs.close();
stmt.close();
con.close();
/table>
edit.jsp:
编辑或添加学生信息页面;
Stringid=request.getParameter("
StringstuID="
;
StringstuName="
StringstuClass="
StringhomeAddress="
if(id!
=null){
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery("
select*fromstudentwhereid="
+id+"
rs.next();
stuID=rs.getString("
stuName=rs.getString("
stuClass=rs.getString("
homeAddress=rs.getString("
编辑学生信息<
h2align="
添加/编辑学生信息<
save.jsp"
tablewidth="
300"
inputtype="
name="
value="
%=stuID%>
姓名:
%=stuName%>
/>
%=stuClass%>
%=homeAddress%>
tdcolspan="
2"
确定"
hidden"
%=id==null?
:
id%>
save.jsp:
保存编辑好的信息;
request.setCharacterEncoding("
StringstuID=request.getParameter("
StringstuName=request.getParameter("
StringstuClass=request.getParameter("
StringhomeAddress=request.getParameter("
Stringsql;
PreparedStatementpt;
if(id==null||id.equals("
)){
sql="
insertintostudent(stuID,stuName,stuClass,homeAddress)values(?
?
)"
pt=con.prepareStatement(sql);
else{
updatestudentsetstuID=?
stuName=?
stuClass=?
homeAddress=?
whereid=?
pt.setString(5,id);
pt.setString(1,stuID);
pt.setString(2,stuName);
pt.setString(3,stuClass);
pt.setString(4,homeAddress);
pt.executeUpdate();
pt.close();
response.sendRedirect("
list.jsp"
delete.jsp:
删除指定学生信息;