环境配置:jdk1.6,eclipse 3.4.2,jetty插件(http://run-jetty-run.googlecode.com/svn/trunk/updatesite/)
注:jetty(http://jettylauncher.sourceforge.net/updates)不能使用,可能是和eclipse3.4.2不兼容吧。
我的学习过程
1.创建一个Dynamic Web Project,名称为“cactusTest”;设置java build path为“cactusTest/WebContent/WEB-INF/classes”。
2.创建index.jsp,welcome.jsp,LoginServlet.java
index.jsp
*******************************************************************************************************************************
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<TITLE>首页</TITLE>
</head>
<body>
<form action="/testCactus/LoginServlet">
登入名称: <input type="text" name="username"><br>
登入密码:<input type="password" name="password"><br>
<input type="submit" value="登入">
</form>
</body>
</html>
----------------------------------------------------------------------------------------------------------------------------------
welcome.jsp
*******************************************************************************************************************************
<%@page language="java" contentType="text/html" pageEncoding="UTF-8" %>
<html>
<head>
<TITLE>欢迎页</TITLE>
</head>
<body>Hello, <%= request.getAttribute("username") %>!
</body>
</html>
----------------------------------------------------------------------------------------------------------------------------------
LoginServlet.java
*******************************************************************************************************************************
package com.test.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (isValidUser(req)) {
String username = req.getParameter("username");
req.setAttribute("username", username);
RequestDispatcher rd = req.getRequestDispatcher("/welcome.jsp");
rd.forward(req, resp);
}
else {
//do something
}
}
public boolean isValidUser(HttpServletRequest req) {
String username = req.getParameter("username");
String password = req.getParameter("password");
if (username.equals("eryuanz") && password.equals("1234")) {
return true;
}
else {
return false;
}
}
}
----------------------------------------------------------------------------------------------------------------------------------
3.从cactus官网下载最新版cactus-1.8.1-bin(http://jakarta.apache.org/site/downloads/downloads_cactus.cgi),解压到本地(cactus-1.8.1-bin)。
4.将cactus-1.8.1-bin/lib下servlet-api-2.4.jar,junit-3.8.2.jar,commons-logging-1.1.jar,commons-httpclient-3.1.jar,cactus.core.framework.uberjar.javaEE.14-1.8.1.jar,aspectjrt-1.5.3.jar 放到工程cactusTest/WebContent/WEB-INF/lib下。
5.编辑WEB-INF/web.xml,内容如下:<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
<servlet>
<servlet-name>ServletRedirector</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>
<servlet>
<servlet-name>JspRedirector</servlet-name>
<jsp-file>/jspRedirector.jsp</jsp-file>
</servlet>
<servlet>
<servlet-name>ServletTestRunner</servlet-name>
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
<init-param>
<param-name>xsl-stylesheet</param-name>
<param-value>/cactus-report.xsl</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.test.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>JspRedirector</servlet-name>
<url-pattern>/JspRedirector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletTestRunner</servlet-name>
<url-pattern>/ServletTestRunner</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/testCactus/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
----------------------------------------------------------------------------------------------------------------------------------
6.创建LoginServletTest.java(放在与src同级的test下)
package com.test.servlet;
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
public class LoginServletTest extends ServletTestCase {
public void beginValidUser(WebRequest webreq) {
webreq.addParameter("username", "eryuanz");
webreq.addParameter("password", "1234");
}
public void testValidUser() {
LoginServlet login = new LoginServlet();
assertTrue(login.isValidUser(request));
}
}
----------------------------------------------------------------------------------------------------------------------------------
7.在eclipse中配置jetty,并启动jetty.
分享到:
相关推荐
这篇“Cactus的学习笔记(一)”可能会涵盖Cactus的基本概念、安装过程、如何配置以及如何编写和运行测试用例等方面的知识。 首先,Cactus并非一种植物,而是Java Web应用的单元测试框架。它由Apache软件基金会开发...
提到“需要的同学可以看看”,这暗示了该文件可能与教育、学习或共享资源有关,适合对Cactus(仙人掌)主题有兴趣或者正在学习相关知识的学生或爱好者。 由于标签和压缩包子文件的文件名称列表只给出了"6-Cactus",...
Jakarta Cactus是Java开发中的一个开源框架,主要用于Web应用程序的服务器端单元测试。这个"jakarta-cactus-12-1.7.1.rar"压缩包文件包含了Cactus框架的1.7.1版本,这是一个针对Jakarta项目第12次发布的重要更新。 ...
CACTUS是一个与字体设计相关的主题。在计算机和图形设计领域,字体是至关重要的元素,它们不仅用于传达信息,还对整体视觉效果产生深远影响。"CACTUS"可能指的是一个特定的字体系列、字体库或者一个与仙人掌主题相关...
学习与社区** Cactus拥有活跃的开发者社区,提供文档、示例项目和在线帮助,使得初学者可以快速上手。通过参与社区,设计师可以与其他用户交流,获取最新资讯和解决问题。 总之,Python-Cactus是一个为设计师量身...
Cactus是一款用于Java Web应用程序单元测试的开源工具。在深入探讨Cactus的1.8.1版本之前,让我们首先理解什么是单元测试以及为什么它在软件开发中至关重要。 单元测试是软件开发过程中的一个关键环节,它允许...
Cactus的权限管理是系统的核心功能之一,它可能包括角色(Role)、用户(User)和权限(Permission)的概念。用户可以被分配到不同的角色,每个角色拥有特定的权限。通过这种方式,Cactus能实现对不同用户访问资源的...
The Cactus project is pleased to announce the release of version 1.7.2. Cactus is a unit testing framework for testing server side java code.
cactus-report.xsl cactus-report.xsl cactus-report.xsl
### 有向Cactus判定的证明 #### 一、引言 有向Cactus图是一种特殊的有向图,其中每条边至多属于一个简单环。这类图在计算机科学领域有着广泛的应用,尤其是在网络流问题、图论研究等方面。本文旨在通过对有向Cactus...
Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
4. **学习Ant和Maven的插件开发**:对于想深入了解构建工具的开发者,Cactus的Ant任务和Maven插件是很好的学习材料。 总结,Cactus的源码是一份宝贵的教育资源,它不仅展示了如何实现高效的服务器端测试,还揭示了...
资源分类:Python库 所属语言:Python 资源全名:Cactus-3.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
#### Cactus的独特之处 除了支持传统的单元测试之外,Cactus还具备了一些独特的特性: - **Ant支持**:虽然本文不会详细展示这一特性,但Cactus的Ant支持可以极大地方便自动化测试过程。 - **集成单元测试**:...
一个变态的jar包,按照我当前的工程环境,应该在weblogic8底下,但就是找不到,所以只好在网上找了,记录在这里。 包含的类: org.apache.cactus.server.ServletTestRedirector
Cactus,Android Keep Alive(安卓保活),Cactus 集成双进程前台服务,JobScheduler,onePix(一像素),WorkManager,无声音乐,博客附件,效果请查看博客相对应项目。
cactus
"50"可能代表帧率,即每秒显示50帧画面,这也是标准的电视广播帧率之一。"rar"是流行的压缩格式,由WinRAR软件创建,用于将多个文件打包成一个单一的可下载和存储的文件。 描述中同样提到"Cactus_1920x1080_50.rar...
jar包,亲测可用
Cactus love