Servlet实现网页验证跳转,并统计访问次数

设计一个提交网页
在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/zzz/my" method="post">
	<input type="text" name="username"/>
	<input type="text" name="pwd"/>	
	<input type="submit" value="登录"/>
	</form>
</body>
</html>

编写一个类继承HttpServlet,重写service方法

package com.zhm;

import java.io.IOException;

import javax.servlet.ServletContext;
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 MyServlet extends HttpServlet{
	int count=1;
@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	req.setCharacterEncoding("utf-8");//处理post请求乱码
	resp.setContentType("text/html; charset=UTF-8");
	
	
	
	String username = req.getParameter("username");
	String pwd = req.getParameter("pwd");
	
	if(username!=null && pwd!=null) {
		if("张三".equals(username) && "123456".equals(pwd)) {
			//登录成功
			HttpSession session=req.getSession();
			session.setAttribute("username", username);
			
			//this.getServletContext();
			ServletContext context = req.getServletContext();
			if(context.getAttribute("count")==null) {
				context.setAttribute("count",1);
			}else {
				context.setAttribute("count", (Integer)context.getAttribute("count")+1);
			}
			resp.sendRedirect("/zzz/main.jsp");
		}else {
			//登陆失败
			resp.getWriter().print("登陆失败");
		}
	}
	}
}

编写一个网页,利用session对象捕捉传递的参数,接收显示在网页上

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	欢迎你:<%=session.getAttribute("username") %>
	网页共被访问:<%=application.getAttribute("count") %></body>
</html>

在这里插入图片描述
完成后如上图所示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以通过以下步骤编写一个servlet实现统计网站被访问次数的功能: 1. 创建一个Java类,继承HttpServlet类,重写doGet()方法。 2. 在doGet()方法中,获取ServletContext对象,并从中获取一个名为“visitCount”的属性。 3. 如果“visitCount”属性不存在,则将其设置为1,并将其存储在ServletContext中。 4. 如果“visitCount”属性存在,则将其值加1,并将其存储在ServletContext中。 5. 在doGet()方法中,将“visitCount”属性的值输出到浏览器。 6. 在web.xml文件中配置servlet映射。 7. 部署应用程序并启动服务器。 8. 访问网站servlet将自动统计访问次数,并将其显示在浏览器中。 示例代码如下: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletContext; public class VisitCountServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext context = getServletContext(); Integer visitCount = (Integer)context.getAttribute("visitCount"); if (visitCount == null) { visitCount = 1; } else { visitCount++; } context.setAttribute("visitCount", visitCount); response.setContentType("text/html"); response.getWriter().println("<h1>网站被访问次数:" + visitCount + "</h1>"); } } ``` 在web.xml文件中添加以下配置: ```xml <servlet> <servlet-name>VisitCountServlet</servlet-name> <servlet-class>VisitCountServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>VisitCountServlet</servlet-name> <url-pattern>/visitcount</url-pattern> </servlet-mapping> ``` 在浏览器中访问http://localhost:8080/visitcount,即可看到网站被访问次数。 ### 回答2: Servlet是Java Web应用程序中的一种Java程序,可以处理HTTP请求和响应,常用于动态生成Web页面和交互式应用程序。编写一个Servlet实现统计网站被访问次数的功能,可以分为以下几个步骤: 1. 创建一个计数器变量count,用于统计网站被访问次数。 2. 在Servlet的init()方法中初始化计数器变量count。 3. 在Servlet的doGet()方法中实现对计数器变量count的操作,每次访问Servlet,计数器变量count的值加1。 4. 在Servlet的doGet()方法中向浏览器输出网站被访问次数的信息,可以使用PrintWriter类的print()方法或者response对象的getWriter()方法。 5. 在Web应用程序的web.xml文件中配置Servlet,指定Servlet的URL匹配模式和Servlet类名。 以下是实现的代码: 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; public class CountServlet extends HttpServlet { private static int count; public void init() throws ServletException { count = 0; } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { count++; response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>统计网站被访问次数</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>网站被访问次数为:" + count + "</h1>"); out.println("</body>"); out.println("</html>"); } } 在web.xml中添加如下配置: <servlet> <servlet-name>countServlet</servlet-name> <servlet-class>CountServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>countServlet</servlet-name> <url-pattern>/count</url-pattern> </servlet-mapping> 配置完成后,就可以通过访问http://localhost:8080/应用程序名称/count来查看网站被访问次数了。每一次访问Servlet,计数器变量count都会加1,并将累加的次数输出到浏览器页面中。最后,可以使用数据库或缓存技术将计数器变量count的值永久化保存,以便在Web应用程序重启或停止后,仍然能够正确地统计网站被访问次数。 ### 回答3: Servlet是Java Web应用程序的重要组成部分,可用于处理网络请求和生成Web响应。编写一个servlet实现统计网站被访问次数的功能,需要以下步骤: 1. 创建一个计数器变量count,来记录网站被访问次数。 2. 实现一个HttpServlet类,这个类将被用来处理HTTP请求。可以继承HttpServlet类,然后重写doGet()方法。 3. 在doGet()方法中,将count计数器加1,然后输出计数器的值,以便用户能够看到被访问次数。 4. 编写web.xml文件,将servlet映射到特定的URL。 完整代码如下所示: ```java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class VisitCounterServlet extends HttpServlet { private int count = 0; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); count++; out.println("<html><body>"); out.println("<h2>Welcome to my website!</h2><br/>"); out.println("<p>You are the " + count + " visitor to this site.</p>"); out.println("</body></html>"); } } ``` 为了使用这个servlet,需要将它注册到Web应用程序中。下面是注册的一种方法: ```xml <servlet> <servlet-name>VisitCounterServlet</servlet-name> <servlet-class>VisitCounterServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>VisitCounterServlet</servlet-name> <url-pattern>/counter</url-pattern> </servlet-mapping> ``` 在上面的代码中,servlet-name指定了servlet的名称,servlet-class指定了所用的Java类名。servlet-mapping将servlet映射到一个URL上,这里是/counter。 最后,在网页访问/counter的URL,会看到一个欢迎信息以及访问次数访问该URL,计数器将会自增,每次刷新页面都会显示统计访问次数的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值