jsp新建jsp文件一个日志可以获得用户访问信息和访问时间

查看: 939|回复: 0
 个人博客系统JSP
个人博客系统JSP是用JSP实现的一个完全基于浏览器的博客系统,任何注册个人博客的人都拥有以下功能:a)登录博客系统的后台管理平台。b)更改博客账号的基本信息。c)撰写日志。d)日志管理。e)评论管理。f)留言管理。博客访问者具有以下功能:a)浏览博客系统中的日志、留言、评论。b)发表评论及留言。c)检索日志。来自蓝天工作室博客信息系统包括:前台信息显示系统、后台信息管理系统。前者是面向公众的一个窗口,通过前台信息显示系统方便访问者浏览日志、评论和留言;发表评论和留言。后者是后台信息管理系统,方便博客管理员发表日志;回复评论和留言;管理日志、评论、留言及个人信息 [12]。用户需求分析用例图用来描述系统与参与者之间的相互作用,与用例图相关的几个概念:a)角色:代表了某一事件发生的参与者,用一个小人表示。b)用例:代表系统可以实现的功能,通常一个用例代表一组功能,实质上规定了系统实现功能的范围。c)用例图:当角色和用例发生某种关系时,就可以用一个图将它们关联起来,这就是用例图。博客信息管理系统允许用户有三种身份:博客访问者、博客管理员及系统管理员。博客系统参与者中每种身份操作起来都很方便、快捷。博客访问者无需登陆就可以浏览信息、发表评论或留言;博客管理员注册后再登陆,就可以发布日志、管理个人主页;而博客管理员的基本信息都由系统管理员对其统一管理。博客信息管理系统用例图如图&根据博客信息管理系统的特点,将其分为两大模块:前台用户浏览模块和后台用户管理模块。前台用户浏览模块主要用于用户浏览日志信息;后台用户管理模块主要用于博客管理员对个人博客网站的管理,如日志管理、留言管理及评论管理等。博客系统平台的前台用户浏览模块流程图如图3.3所示。前台用户浏览模块主要用于用户浏览日志信息,用户浏览日志有三种浏览方式可以选择:一是直接点击日志标题链接进入日志显示页面浏览日志;二是点击博客主题链接进入该个人博客的首页,然后在该首页中选择所需的日志标题链接进入日志显示页面浏览日志;三是通过首页提供的搜索功能,搜索所需要的日志,然后在结果列表中选择所需的日志标题链接进入日志显示页面浏览日志。浏览日志的同时用户可以查看别人对该日志的评论,然后用户也可以对该日志发表自已的评论。用户进入后台管理平台,首先必需进行权限验证,防止未授权的用户非法登录。若未通过验证,则显示出错提示,并跳转到登录界面。若通过验证,则进入个人博客后台管理平台。用户可以浏览已发表的日志,并对其进行相应的操作如修改日志和删除日志;可以查看日志的评论信息并对其进行回复或者删除操作;可以发表新的日志;可以新建日志分类;可以浏览个人博客的留言信息并对其进行相应的操作如回复留言
(需要该计算机毕业设计论文的,请联系我们在线客服)-本设计为全套资料
Copyright &
All Rights Reserved
Powered by您所在的位置: &
如何实现ASP.NET中网站访问量的统计
如何实现ASP.NET中网站访问量的统计
网翼教程网
本文介绍了如何在asp.net中进行网站访问量的统计。
下面介绍如何进行ASP.NET中网站访问量的统计。
一、建立一个数据表IPStat用于存放用户信息
我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间(IP_DateTime),些表的信息本人只保存一天的信息,如果要统计每个月的信息则要保存一个月。因为我不太懂对数据日志的操作,所以创建此表,所以说我笨吧,哈哈。
二、在Global.asax中获取用户信息
在Global.asax的Session_Start即新会话启用时获取有关的信息,同时在这里实现在线人数、访问总人数的增量统计,代码如下: void&Session_Start(object&sender,&EventArgs&e)& &&{& &&&&string&ipAddress&=&Request.ServerVariables["REMOTE_ADDR"];& &&&&string&ipS& &&&&if&(Request.UrlReferrer&==&null)& &&{& &&ipSrc&=&"";& &&}& &&else& &&{& &&&&ipSrc&=&Request.UrlReferrer.ToString();& &&}& &&&&DateTime&ipDatetime&=&DateTime.N& &&&&IPControl&cont&=&new&IPControl();& &&cont.AddIP(ipAddress,&ipSrc,&ipDatetime);& &&&&string&pageurl&=&Request.Url.ToString();& &&&&if&(pageurl.EndsWith("IPStat.ASPx"))& &&{& &&&&Application.Lock();& &&&&Application["StatCount"]&=&int.Parse(Application["StatCount"].ToString())&+&1;& &&&&Application.UnLock();& &&}& &&&&Session.Timeout&=&10;&&&Application.Lock();& &&Application["countSession"]&=&Convert.ToInt32(Application["countSession"])&+&1;&&Application["onlineWhx"]&=&(int)Application["onlineWhx"]&+&1;&&&Session["login_name"]&=&null;& &&&&Application.UnLock();& &&}& &&
提醒一句,别忘了下面的代码,以实现在用户离线时,将在线人数减去1. void&Session_End(object&sender,&EventArgs&e)& &&{& &&&&&&&如果会话模式设置为&StateServer& &&&&&&Application.Lock();& &&Application["onlineWhx"]&=&(int)Application["onlineWhx"]&-&1;&&&Session["login_name"]&=&null;& &&&&Application.UnLock();& &&}& &&
三、将以上有关信息保存到数据库IPStat
ASP.NET中网站访问量统计的最后一个实现步骤,就是创建了一个获取IP数据信息的类IPControl(),用来实现对数据库IPStat数据的操作,关于IPControl()类的内容,因为它是C#中对数据库的操作,以解sql server 数据库,就能看懂它,这里就不作介绍了,请点击该链接查看。
为了实现将用户IP信息存入数据库,在上面代码中对IPControl()进行调用 &&IPControl&cont&=&new&IPControl();& &&cont.AddIP(ipAddress,&ipSrc,&ipDatetime);& &&
参数ipAddress为用户IP,ipSrc为用户来源, ipDatetime为用户进入时间。
以上就实现了ASP.NET中网站访问量的统计。
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
AngularJS是很多Web开发人员在打造单页面应用程序时的首选创建方
作为移动开发者,WOT2016移动互联网技术峰会,绝对有你不得不来的理由。
讲师: 15人学习过讲师: 36人学习过讲师: 15人学习过
针对大数据来说,2016年将是令人振奋的一年。智能算法
当下HTML5技术一直受到各方关注,“HTML5颠覆原生App
Web应用程序框架领域涌现出了一股创新热潮,这可能让
SQL(结构化查询语言)是数据库系统的通用语言,利用它可以用几乎同样的语句在不同的数据库系统上执行同样的操作,在数据库系统的
51CTO旗下网站关于tomcat 访问日志内容解释_百度知道
关于tomcat 访问日志内容解释
0&quot.35 - - [16&#47.2;gm/1;Mar&#47?
最后的189是什么含义:55 +0800] &quot?“ HTTP&#47:07;.1;receiveGmOrder内容如下:10;POST &#47、后面跟着的是访问时间.35是访问1; 200 189其中
10.jsp HTTP&#47.1。“POST”表示什么含义.0”是什么含义
提问者采纳
ost指访问的方式,是GET还是POST
HTTP&#47,如果字节数为0的话;1,304啊等等
189应该是发送信息的字节数,200,不涵括http头.0访问者使用的协议
200这个是http的状态,可能会有404
POST /gm/receiveGmOrder.jsp 其中 /gm/receiveGmOrder.jsp 是我本机工程下的文件,10.1.2.35是提交这个文件吗?
应该是10.1.2.35访问了/gm/receiveGmOrder.jsp这个文件吧
提问者评价
非常感谢你对我的提问的关注与回答
其他类似问题
为您推荐:
tomcat的相关知识
其他1条回答
9 ;1.0,目前貌似有0post是请求类型 有get和posthttp&#47、 1.0是指的协议版本、1
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&&From: Original
安装了sql server 2005 ,myEclipse ,并且稍微配置了下环境,原来就搞过,不过确实myEclipse 比Eclipse装插件容易一点。myEclipse原来安装的时候就自带了tomcat,但是可以指定外部的Eclipse和jdk。运行的时候发现出现了在MyEclipse中运行tomcat出现Error initializing endpoint错误的错误,网上看了其他人也遇到过类似问题。解决方案很简单。严重: Error initializing endpointjava.net.BindException: Address already in use: JVM_Bind:8080.......后面还有一大串,原来是8080端口被占用,所以找到安装tomcat的目录下的conf的文件夹中的“server.xml”文件,用记事本打开此文件,查找(打开文件后Ctrl+F)文件中的所有“8080”,并改为其他没有被占用的端口值(如:等)。如何查找未被占用的端口号,按win+R,输入cmd,跳出控制台,然后输入netstat -a 就可以看到占用的端口。但是,改完之后还是出现同样问题,原来是8005端口被占用,一查确实如此,错误如下:严重: StandardServer.await: create[8005]:java.net.BindException: Address already in use: JVM_Bindat java.net.PlainSocketImpl.socketBind(Native Method)at java.net.PlainSocketImpl.bind(Unknown Source)at java.net.ServerSocket.bind(Unknown Source)at java.net.ServerSocket.(Unknown Source)at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)at org.apache.catalina.startup.Catalina.await(Catalina.java:616)at org.apache.catalina.startup.Catalina.start(Catalina.java:576)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)create[8005],是在创建端口时出错了,java.net.BindException: Address already in use: JVM_Bind说明这个端口已经在使用了,tomcat不能用了,到安装目录/conf/下找到server.xml,找到使用8005端口的语句,把端口号改成不在使用的(8006)。然后再在浏览器输入就可以看到tomcat的welcome页面了。?此外,在MyEclipse使用Tomcat服务器调试中出现错误如下:严重: Error initializing endpoint严重: Catalina.start严重: Error starting endpoint严重: Catalina.start:严重: StandardServer.await: create[8005]:出现这种错误一般是因为系统已经启动了tomcat服务器,大家一定要注意,在用eclipse和tomcat调试环境时,一定要保证tomcat服务没有启动,所以也建议大家在系统服务中将tomcat服务改成“手动启动”(如果不用eclipse也就没这个必要了)。
Trackback is disabled.
&&From: Original
一、Tomcat服务器常见启动问题:(1).Java_home环境变量,由于tomcat服务器的bin目录中的一些jar文件必须使用到java类库,所以必须先配置Java_home环境变量。(2).端口占用问题(3).Catalina_home环境变量的问题,如果配置了catalina_home环境变量,则默认启动的是catalina_home所指向的tomcat服务器。二、Tomcat目录结构:(1).bin:存放启动和关闭tomcat的脚本文件。(2).conf:存放tomcat服务器中的各种配置文件。(3).lib:存放tomcat服务器的支持jar包。(4).logs:存放tomcat的日志文件。(5).temp:存放tomcat运行时产生的临时文件。(6).webapps:web应用存放目录。(7).work:tomcat的工作目录。三、web应用和虚拟目录映射:(1).虚拟目录映射:web应用开发好后,需要把web应用所在目录交给web服务器管理(虚拟目录),这个过程就叫做虚拟目录映射。(2).实现虚拟目录映射的几种方式:I.在server.xml文件中配置一个Context,用它来指向一个web应用,这种方式需要重新启动服务器。II.在$catalina_base$/conf/enginename/hostname/下新建一个xml文件,该文件的文件名就是web应用对应的虚拟目录(ROOT表明该应用是缺省应用),然后在文件中只需配置web应用所在路径。III.Tomcat会自动管理webapps下的web应用,把他映射成虚拟目录。四、web应用的组织结构:五、配置虚拟主机:(1).配置虚拟主机,只需要在server.xml配置文件中,添加一个节点(2).配置好的虚拟主机要想被外界访问到,必须在dns服务器上注册(购买域名)或者在windows系统中的hosts文件进行注册。(3).配置虚拟主机,只需要在server.xml配置文件中,配置六、web资源访问流程:(1).I.在浏览器中输入网之后,开始查找主机对应的IP地址(windows或者dns),查找到相应的ip后,连接相应的服务器。II.客户端向主机发送http请求,主机从请求信息中解析出要访问的主机和应用,查找相应的资源,然后读取这些资源,向客户端发送一个http响应。III.浏览器接收到响应之后,解析并显示http响应。(2).将web应用打成war包,jar -cvf **.war **,服务棋会自动解压war包。七、Tomcat体系结构:八、配置使用Tomcat Manager:1.在conf目录下面的tomcat-users文件中可以配置用户名和密码,如若想进入manager页面必须配置用户角色为manager。八、认识http协议:1.telnet ip port-->GET 资源路径 HTTP/1.1 Host:(不指定,几位缺省主机),即可从主机请求到相应的页面。2.通过http watch来查看。九、http请和请求方式详解:1.http请求包括请求行,请求头和实体数据(消息行和数据之间有一个空行)2.http请求方式有两种:get和post(form),这两种方式的主要区别在于数据的传递。:get-->/mail/1.html?name=abs&pwd=123(URL参数的方式).put-->传送的数据 十、http请求各头字段详解:Accept:text/html,image/*-->客户机支持的文件类型Accept-Charset:iso-8859-1-->客户机的编码方式Accept-Encoding:gzip-->客户机支持的压缩格式Accept-language:zh-cn-->客户机的语言环境Host:>客户机要访问的主机名if-Modified-Since:&&-->客户机告诉服务器资源的缓存时间(浏览器通常会把网页缓存,以加快访问速度,如果访问时间之后没有更新,则直接访问缓存)Referer:-->客户机告诉服务器,是从哪个资源访问过来的,主要用来防盗链。User-Agent:-->客户机的软件环境Cookie:Connection:close/keep-Alive-->本次请求之后,继续保持连接还是关闭连接Date:-->客户机的请求时间
Trackback is disabled.
&&From: Original
搭建Windows下Java Web开发环境图文教程.doc下载开发环境软件,开发软件,开发周边软件下载地址,并附录hello world实例,一起来做第一个java web程序吧!Download
downloads)
Trackback is disabled.
&&From: Original
感谢曹帮我搞定了安装,实现了hello,jsp!/hello,java!附带一个文档:Download
downloads)
Trackback is disabled.
热门围观排行榜:
Latest Entries
随便拿点来看看:
Latest Comments
好多好多关键词
这些词比较火爆JSP内置对象(上)_Java教程_
JSP内置对象(上)
来源:人气:172
内置对象(上)在JSP中为了简化页面的开发提供了一些内置的对象。这些对象不需要由JSP的编写者通过new关键字实例化,他们都由容器实现和管理,在所有的JSP页面中都可以使用内置对象。JSP中共有9大内置对象:out对象requset对象response对象对象pageContext对象对象config对象page对象exception对象JSP内置对象(下):http://wxmimperio.coding.io/?p=329PS:【web对象的请求响应模式】1.用户从客户端发送HTTP请求(request)到web服务器端2.服务器给用户做相应的HTTP响应(response)返回客户端【表单提交的两种方式:get and post】1.get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2kb。安全性比较低但效率比post方式高,适合提交数据量不大,安全性不高的数据。比如:搜索、查询2.post:将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。比如:注册、修改、上传1.out对象out对象被封装成x.servlet.jsp.JspWriter接口,主要用来向客户端输出数据,代表输出流的对象。常用的方法:out.int()、out.println():向客户端打印字符串out.clear():清除缓冲区里的数据,但不会把数据输出到客户端,如果在flush之后调用会抛出异常out.flush():输出缓冲区里的数据out.clearBuffer():清除缓冲区里的数据,并把数据输出到客户端,如果在flush之后调用不会抛出异常out.getBufferSize():获得缓冲区大小out.getRemaining():获得缓冲区剩余空间大小out.close():关闭输出流out.isAutoFlush():返回布尔值,判断是否为自动清除缓存代码:&body&println方法:&%out.println("打印输出");%&&br&getBufferSize方法:缓冲区大小=&%=out.getBufferSize()%&&br&getRemaining方法:缓冲区剩余大小=&%=out.getRemaining()%&&br&isAutoFlush方法:是否自动清除缓冲区:&%=out.isAutoFlush()%&&br&clear方法:&%out.close();%&&br&&%--clearBuffer方法:&%out.clearBuffer();%&&br&flush方法:&%out.flush();%&&br&close方法:&%out.close();%&&br&--%&&/body&2.request对象request对象代表请求对象,他被封装成HttpServletRequest接口。通过getParameter方法可以得到requset的参数,通过get、post、head等方法可以得到request的类型,通过Cookies、Referer等可以得到请求的HTTP头。来自客户端的请求经Servlet容器处理后,有request对象进行封装,他作为jspServlet()方法的一个参数由容器传递给JSP页面。常用的方法:getParamter(String name):获得客户端传给服务器端的参数值,参数由name指定getParameterValues(String name):获得指定参数的所有值,参数由name指定getProtocol():获取客户端向服务器端传送数据所依据的协议类型及版本号getServerName():获取服务器的名字getServerPath():获取客户端所请求的脚本文件的路径getServerPort():获取服务器的端口号getContentLength():返回请求的长度,如果长度不确定,返回-1getCharacterEncoding():返回请求中的编码方式getLocalAddr():返回接收到请求的网络接口的地址,这个方法是在Servlet 2.4规范中新增的方法getLocalName():返回接收到请求的IP接口的主机名,这个方法是在Servlet 2.4规范中新增的方法setAttribute(String name,java.lang.Object objt):储存此请求中的属性getAttribute(String name):返回由name指定的属性,如果此属性不存在,则返回一个null值代码:requestForm.jsp&formname="requsetFrom"action="requestObject.jsp"method="post"&&table&&tr&&td&用户名:&/td&&td&&inputtype="text"name="username"&&/td&&/tr&&tr&&td&兴趣:&/td&&td&&inputtype="checkbox"name="favorite"value="basketball"&篮球&inputtype="checkbox"name="favorite"value="music"&音乐&inputtype="checkbox"name="favorite"value="football"&足球&/td&&/tr&&tr&&td&&inputtype="submit"value="提交"&&/td&&/tr&&/table&&/form& requestObject.jsp&body&&%/*解决中文乱码问题,但不能解决用URL传递中文的乱码*/request.setCharacterEncoding("utf-8");/*调用setAttribute方法*/request.setAttribute("pass","");%&用户名:&%=request.getParameter("username")%&&br&兴趣:&%if(request.getParameterValues("favorite")!=null){String[]favorites=request.getParameterValues("favorite");for(inti=0;i&favorites.i++){out.println(favorites[i]+"&&");}}%&&br&服务器版本号:&%=request.getProtocol()%&&br&服务器名字:&%=request.getServerName()%&&br&客户端请求的文件路径:&%=request.getServletPath()%&&br&服务器端口号:&%=request.getServerPort()%&&br&请求长度:&%=request.getContentLength()%&&br&请求中编码方式:&%=request.getCharacterEncoding()%&&br&请求中网络接口的IP:&%=request.getLocalAddr()%&&br&请求中的主机名:&%=request.getLocalName()%&&br&获取指定属性:&%=request.getAttribute("password")%&&br&&/body& 3.response对象response被包装成HttpServletResponse接口,他封装了JSP产生的响应,然后被发送到客户端以响应客户的请求。和request对象一样,他由容器生成,作为jspService()方法的参数被传入JSP。他具有页面作用域,即访问一个页面时,该页面的response对象只能对该页面有效,其他页面的response对象对当前页面无效。常用的方法:flushBuffer():强制把当前缓冲区的内容发送到客户端getBufferSize():返回缓冲区大小addCookie(Cookie cook):添加一个Cookie对象,用来保存客户端信息sendError(int):向客户端发送错误的信息sendRedirect(String location):把响应发送到另一个位置进行处理setContentType(StringContentType):设置响应的MIME类型getWriter():返回一个可以向客户端输出字符的对象getCharacterEncoding():返回响应所用的编码类型 PS:【请求重定向】客户端行为,response.sendRedirect(),从本质上讲等同于发出两次请求,前一次请求对象不会被保存,地址栏的URL地址会发生改变【请求转发】服务器行为,requset.getRequestDispatcher().forward(request,response);是一次请求,转发后请求对象会保存,地址栏的URL地址不会发生变化代码:&body&缓冲区大小=&%=response.getBufferSize()%&&br&&%--错误=&%response.sendError(404);%&&br&--%&响应的编码类型=&%=response.getCharacterEncoding()%&&br&&%response.setContentType("text/charset=utf-8");//设置响应的MIME类型/*response生成的输出流优先级高于内置对象out,先进行打印输出*/PrintWriterouter=response.getWriter();//获得输出流outer.println("response生成的输出流&br&");/*使用了一个Cookie,每次访问此页面时,就通过requset对象把客户端的所有Cookie获取过来*/Cookie[]cookies=request.getCookies();Cookiecookie_response=Listlist=Arrays.asList(cookies);Iteratorit=list.iterator();while(it.hasNext()){Cookietemp=(Cookie)it.next();if(temp.getName().equals("__time"));{cookie_response=}}if(cookie_response!=null){outer.println("访问时间="+cookie_response.getValue()+"&br&");cookie_response.setValue(newDate().toString());}else{cookie_response=newCookie("_access_time",newjava.util.Date().toString());}response.addCookie(cookie_response);response.flushBuffer();%&&/body& 4.session对象session对象用来保存每个用户信息,以便跟踪每个用户的操作状态。其中,session信息保存在容器中,session的ID保存在客户端的Cookie中。session表示客户端与服务器的一次会话,web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间他表示特定的一段时间,在服务器内存中保存着不同用户的session,session对象在第一个jsp页面被装载时自动创建,完成回话管理。【生命周期】从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开服务器结束,称为一个会话。当一个用户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。session对象是HttpSession类的一个实例.创建:当客户端第一
优质网站模板}

我要回帖

更多关于 eclipse新建jsp文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信