




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用户注册系统 struts2+jsp+mysql5.5五个实验实验五有本系统的核心代码界面实验报告(一)院系:信息学院 课程名称:信息系统设计与开发(上) 日期:班 级信A1022姓 名专 业信息管理与信息系统学 号29实 验 室701实验名称Web技术成 绩 评 定教 师 签 名实验目的1、 掌握servlet的配置方法2、掌握请求过滤器用法3、掌握lister用法实验内容Servlet配置常用对象过滤器的用法实验过程、结果及分析1、 请通过java编写一个客户端,能够把指定网站,指定网页中的所有超级连接打印出来.import java.io.BufferedReader;import java.io.InputStreamReader;import .URL;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Urls private String startUrl; / 开始采集网址String urlContent;String ContentArea;private String strAreaBegin, strAreaEnd; / 采集区域开始采集字符串和结束采集字符串private String stringInUrl, stringNotInUrl;String strContent;/ 获得的采集内容String allUrls; / 采集到的所有网址private String regex; / 采集规则UrlAndTitle urlAndTitle = new UrlAndTitle(); / 存储网址和标题public static void main(String args)Urls myurl = new Urls();myurl.getStartUrl(/);myurl.getUrlContent();myurl.getContentArea();myurl.getStringInUrl(/);myurl.getStringNotInUrl(google);myurl.Urls();/ 初始化构造函数 strAreaBegin 和strAreaEndpublic Urls(String strAreaBegin, String strAreaEnd) this.strAreaBegin = strAreaBegin;this.strAreaEnd = strAreaEnd;/public void Urls()int i = 0;/ String regex =$;final String regex = ;/ String regex =http:/.*?;final Pattern pt = Ppile(regex);final Matcher mt = pt.matcher(ContentArea);while (mt.find() System.out.println(mt.group(); i+; / 获取标题 final Matcher title = Ppile(.*?).matcher(mt.group(); while (title.find() System.out.println(标题: + title.group().replaceAll(|, ); / 获取网址 final Matcher myurl = Ppile(href=.*?).matcher(mt.group(); while (myurl.find() System.out.println(网址: + myurl.group().replaceAll(href=|, ); System.out.println();System.out.println(共有 + i + 个符合结果);/ 获得开始采集网址public void getStartUrl(String startUrl)this.startUrl = startUrl;/ 获得网址所在内容;public void getUrlContent()StringBuffer is = new StringBuffer();try URL myUrl = new URL(startUrl); BufferedReader br = new BufferedReader(new InputStreamReader(myUrl .openStream(); String s; while (s = br.readLine() != null) is.append(s); urlContent = is.toString(); catch (Exception e) System.out.println(网址文件未能输出); e.printStackTrace();/ 获得网址所在的匹配区域部分public void getContentArea()int pos1 = 0, pos2 = 0;pos1 = urlContent.indexOf(strAreaBegin) + strAreaBegin.length();pos2 = urlContent.indexOf(strAreaEnd, pos1);ContentArea = urlContent.substring(pos1, pos2);/ 以下两个函数获得网址应该要包含的关键字及不能包含的关键字/ 这里只做初步的实验。后期,保护的关键字及不能包含的关键字应该是不只一个的。public void getStringInUrl(String stringInUrl)this.stringInUrl = stringInUrl;public void getStringNotInUrl(String stringNotInUrl)this.stringNotInUrl = stringNotInUrl;/ 获取采集规则/ 获取url网址public void getUrl()public String getRegex()return regex;class UrlAndTitle String myURL;String title;2、 请建立一个servlet类用于显示当前的系统时间public class ss extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.dopost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException Date date=new Date();response.setContentType(text/html);PrintWriter out = response.getWriter();out.println();out.println();out.println( A Servlet);out.println( );out.print( This is );out.print(this.getClass();out.println(, using the GET method+date);out.println( );out.println();out.flush();out.close();实验过程、结果及分析3当用户进入web应用没有登入时,要求用户必须登入。SessionFilter.javapackage net.pms.web.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;/* */public class SessionFilter implements Filter public static boolean isContains(String container, String regx) boolean result = false; for (int i = 0; i regx.length; i+) if (container.indexOf(regx) != -1) return true; return result; public FilterConfig config; public void setFilterConfig(FilterConfig config) this.config = config; public FilterConfig getFilterConfig() return config; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException HttpServletRequest httpreq = (HttpServletRequest) request; HttpServletResponse httpres = (HttpServletResponse) response; HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper( (HttpServletResponse) response); String logonStrings = config.getInitParameter(logonStrings); String includeStrings = config.getInitParameter(includeStrings); String redirectPath = httpreq.getContextPath() + config.getInitParameter(redirectPath); String disabletestfilter = config.getInitParameter(disabletestfilter); if (disabletestfilter.toUpperCase().equals(Y) chain.doFilter(request, response); return; String logonList = logonStrings.split(;); String includeList = includeStrings.split(;); Object user = httpreq.getSession().getAttribute(userinfo); if (user = null) if (!this.isContains(httpreq.getRequestURI(), includeList) chain.doFilter(request, response); return; if (this.isContains(httpreq.getRequestURI(), logonList) chain.doFilter(request, response); return; wrapper.sendRedirect(redirectPath); else chain.doFilter(request, response); public void destroy() this.config = null; public void init(FilterConfig filterConfig) throws ServletException this.config = filterConfig; 4.配置 Servlet 过滤器在web.xml中: SessionFilter net.pms.web.filter.SessionFilter logonStrings login.jsp includeStrings .jsp;.html redirectPath /login.jsp disabletestfilter N SessionFilter /* 实验过程、结果及分析4、请设计一种机制进行网站访问者统计package com.wjl;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class Count extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException /得到当前web应用程序的上下文 ServletContext context=this.getServletContext(); /取出当前保存的属性 /如果此页面是第一次被访问,那些count为空,我们帮他初始化为1 /如果不是第一次被访问,那么就加1 Integer count=(Integer)context.getAttribute(count); if(count=null) count=new Integer(1); else count=new Integer(Value()+1); /设置编码,不然中文会变成乱码 response.setContentType(text/html;charset=GB2312); /得到输出流对象 PrintWriter out=response.getWriter(); out.println(); out.println(页面访问统计); out.println(); out.println(当前页面被访问了); out.println(+count+次); /设置属性,将count保存到当前的上下文中/ context.setAttribute(count,count); session.setAttribute(count,count); session.setAttribute(ip,getRemortIP(request); out.close(); 这种方式是用上下文进行记录的,缺点是每次刷新都会增加一,下面看防止刷新的。每个客户端只记录一次。package com.wjl;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class Count extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException /*/得到当前web应用程序的上下文 ServletContext context=this.getServletContext(); /取出当前保存的属性 /如果此页面是第一次被访问,那些count为空,我们帮他初始化为1 /如果不是第一次被访问,那么就加1 Integer count=(Integer)context.getAttribute(count); if(count=null) count=new Integer(1); else count=new Integer(Value()+1); */ / 上面的方式是放到了context中,我可以放到session中 HttpSession session=request.getSession(); Integer count = (Integer)session.getAttribute(count); if(count=null) count = 1; else if(session.getAttribute(ip)!=null&!session.getAttribute(ip).equals(getRemortIP(request) count = new Integer(Value()+1; /设置编码,不然中文会变成乱码 response.setContentType(text/html;charset=GB2312); /得到输出流对象 PrintWriter out=response.getWriter(); out.println(); out.println(页面访问统计); out.println(); out.println(当前页面被访问了); out.println(+count+次); /设置属性,将count保存到当前的上下文中/ context.setAttribute(count,count); session.setAttribute(count,count); session.setAttribute(ip,getRemortIP(request); out.close(); /* * 获得客户端ip * param request * return */ public String getRemortIP(HttpServletRequest request) if (request.getHeader(x-forwarded-for) = null) return request.getRemoteAddr(); return request.getHeader(x-forwarded-for); 实验报告(二)院系:信息学院 课程名称:信息系统设计与开发(上) 日期:班 级信A1022姓 名专 业信息管理与信息系统学 号29实 验 室701实验名称Struts框架的结构成 绩 评 定教 师 签 名实验目的1、掌握struts框架的基本jar包2、掌握struts应用的基本流程3、掌握web.xml和struts.xml及action类的写法 4、掌握MVC模式的系统设计思路实验内容Struts应用的写法实验过程、结果及分析一、创建一个struts技术的用户登入系统,当用户输入用户名是张三、密码是12345,就进入欢迎页面。否则继续输入1、strtus应用需要的那些jar包?(10分)commons-fileupload-1.2.1.jarcommons-io-1.3.2.jarfreemarker-2.3.16.jarjavassist-3.7.ga.jarognl-3.0.jarstruts2-core-.jarxwork-core-.jar3、 用户登入界面的设计(20分)Login.jsp用户登录3、web.xml配置20分) index.jsp struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 实验过程、结果及分析 5、登录action的业务类设计(30分)package com;import java.util.Map;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ActionContext;SuppressWarnings(serial)public class LoginAction extends ActionSupportprivate String name;private String pwd;public String getName() return name;public void setName(String name) = name;public String getPwd() return pwd;public void setPwd(String pwd) this.pwd = pwd;SuppressWarnings(unchecked)public String checkLogin()System.out.println(*name=+name);ActionContext ac=ActionContext.getContext(); /获得ActionContextSuppressWarnings(unused)Map app=ac.getApplication();ac.getSession().put(login, ); /把登录名称放入session中ac.getApplication().put(login, ); /把登录名称放入application中return SUCCESS;实验报告(三)院系:信息学院 课程名称:信息系统设计与开发(上) 日期:班 级姓 名专 业信息管理与信息系统学 号29实 验 室701实验名称OGNL成 绩 评 定教 师 签 名实验目的1、掌握OGNL的应用场景2、掌握ognl访问属性、访问方法、访问数组、访问集合等方法实验内容常用的标签的使用OGNL表达式的使用实验过程、结果及分析已知OgnlAction类的结构如下:public class OgnlAction extends ActionSupport private Cat cat;private Map dogMap = new HashMap();private Set dogs = new HashSet();private String password;private User user;private String username;private List users = new ArrayList();public OgnlAction() users.add(new User(1);users.add(new User(2);users.add(new User(3);dogs.add(new Dog(dog1);dogs.add(new Dog(dog2);dogs.add(new Dog(dog3);实验过程、结果及分析dogMap.put(dog100, new Dog(dog100);dogMap.put(dog101, new Dog(dog101);dogMap.put(dog102, new Dog(dog102);dog类定义如下:public class Dog private String name;public Dog() public Dog(String name) super(); = name;public String getName() return nam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国腕式止鼾器项目创业计划书
- 中国跨境进口零售电商项目创业计划书
- 中国三腺金丝桃属项目创业计划书
- 中国肉鸡项目创业计划书
- 中国计算机零部件制造项目创业计划书
- 中国瓜菜花项目创业计划书
- 2025车辆买卖合同大全
- 2025咖啡厅装修工程承揽合同范本
- 中国电子银项目创业计划书
- 安全节能测试题库及答案
- 第23课《“蛟龙”探海》课件-2024-2025学年统编版语文七年级下册第六单元
- GB/T 13460-2025再生橡胶通用规范
- 2025年中考数学必考基础知识点中考总复习总结归纳
- 2025年北京市水务局所属事业单位招聘工作人员101人笔试高频重点提升(共500题)附带答案详解
- 【MOOC】新媒体文化十二讲-暨南大学 中国大学慕课MOOC答案
- 岗位风险点辨识表
- 奇美牌口风琴吹奏说明电子版
- 把信送给加西亚(英文版)
- 全文解读《教育督导问责办法》PPT内容讲授
- 尾矿库堆坝模型试验
- 设备三级保养记录表
评论
0/150
提交评论