首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

小弟我的cactus学习之旅

2012-08-25 
我的cactus学习之旅环境配置:jdk1.6,eclipse 3.4.2,jetty插件(http://run-jetty-run.googlecode.com/svn/t

我的cactus学习之旅

环境配置: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.

?

?

余下的在http://hi.baidu.com/z%C5%B6%C5%B6/blog,等我有空再贴。。。。

?

热点排行