Struts+Tomcat搭建

Struts+Tomcat搭建

tomcat使用(服务器端开发):    

 

如果要安装Tomcat需要进行的配置:tomcat安装在c: \Tomcat

CATALINA_HOME变量值设为: H:\Program Files (x86)\tomcat\apache-tomcat-7.0.27

CATALINA_BASE变量值设为: H:\Program Files (x86)\tomcat\apache-tomcat-7.0.27

CATALINA_TMPDIR变量值设为:H:\Program Files (x86)\tomcat\apache-tomcat-7.0.27\temp;

 

         检测Tomcat配置是否成功:

         接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了

        应用一之建立自己的jsp app目录

 

1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;

2.在webapps目录下新建一个目录,起名叫myapp;

3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;

4.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> </web-app>
复制代码

5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如 下:<html><body><center> Now time is: <%=new java.util.Date()%> </center></body></html>

6.重启Tomcat

7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 能看到当前时间就说明成功了

          应用二之建立自己的Servlet

 

1.写入你的第一个Servlet

复制代码
import java.io.*;import javax.servlet.*;
import javax.servlet.http.*;public class HelloWorld extends HttpServlet
{public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<html><head><title>");out.println("This is my first Servlet");out.println("</title></head><body>");out.println("<h1>Hello,World!</h1>");out.println("</body></html>");} }
复制代码

2.然后用javac HelloWorld.java命令来编译它如果出现软件包 javax.servlet 不存在等错误信息将”Tomcat安装目录\lib”目录下的servlet-api.jar拷贝一份放到“JDK安装目录\jre\lib\ext”目 录下凡是出现找不到包的情况,都可以将找到的包放到JDK\jre\lib\ext下

3.然后在”tomcat安装目录\webapps\ROOT” 里面按如下的文件结构ROOT\WEB-INF\lib\servlet-api.jar(servlet的.jar包,要放在lib下面,可以改名字)

ROOT\WEB-INF\classes\HelloWorld.class(把上面生成的HelloWorld.class放这)

4.修改”tomcat安装目录\webapps\ROOT\WEB-INF”下的web.xml模板文件

把下面这段程序

复制代码
servlet>
.....
</servlet><servlet-mapping>
......
</servlet-mapping>
复制代码

替换成

复制代码
<servlet><servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class>
</servlet><servlet-mapping><servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/HelloWorld</url-pattern>
</servlet-mapping>
复制代码

如果没有的话,就直接加那段代码

修改完毕后,重新启动Server,然后再输入http://localhost:8080/servlet/HelloWorld

看到hello,world !表示成功了

补充:在JSP文件开头加入下面这条语句可以实现中文名称显示

<%@ page language="java" contentType="text/html; harset=gb2312" %>

修改tomcat安装目录下conf\server.xml为

port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

注意黑体部分是修改的地方,修改之后就可以让TOMCAT支持中文链接了
         应用三之建立搭建struts使用myeclipse开发自己的Servlet

如果在MyEclipse里创建dynamic web project的话(我用的myeclipse10)

1.准备工作,去网上下载struts-1.3.10类库(2.3.1.2版本经测试少包)

2.需要在创建新项目时,选中Show All Wizards:

然后file-->new-->other-->web-->dynamic web project创建好项目名为web的项目-->finish如图

                                                  

3.在项目WebContent\WEB-INF目录下建一个page文件夹,留作备用(存放自己的页面)

右击WEB-INF文件夹-->New-->Folder-->Folder name为page-->finish

4.将struts\lib下的jar包复制到WebContent\WEB-INF\lib目录下,右击项目名 -->MyEclipse-->add JSTL Libraries…-->finish导入jstl类库此时WebContent\WEB-INF\lib会多出jstl.jar和 standard.jar

5.由于strus接收中文请求参数存在乱码,需要通过一个过滤器解决

右击项目-->New-->Filter然后配置如图

                                                  

点击finish会生成EncodeingFilter类,然后删除类中没必要的代码,最后代码如下

复制代码
package com.bravestarr.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.annotation.WebFilter;@WebFilter("/EncodeingFilter")
public class EncodeingFilter implements Filter {public void destroy() {} public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {//我们的网站是什么编码此处就设置什么编码request.setCharacterEncoding("UTF-8");chain.doFilter(request, response);}public void init(FilterConfig fConfig) throws ServletException {}
}
复制代码

6.生成struts配置文件并进行配置

右击项目名-->MyEclipse-->add structs Capabilities…-->进行如下设置-->finish此时也会自动生成一个web.xml

                                                  

修改struts-config.xml成

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config><form-beans><form-bean name="myForm" type="com.bravestarr.formbean.MyForm" /></form-beans><action-mappings><!-- 表示运行时地址栏路径为manage.do --><action path="/manage" name="myForm" scope="request" parameter="method" type="com.bravestarr.action.MyManageAction"><forward name="result" path="/WEB-INF/page/result.jsp"/></action></action-mappings>
</struts-config>
复制代码

7.修改web.xml成

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!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>myweb</display-name><filter><filter-name>EncodingFilter</filter-name><display-name>EncodingFilter</display-name><!-- 处理中文乱码的EncodingFilter类 --><filter-class>com.bravestarr.web.filter.EncodingFilter</filter-class></filter><filter-mapping><filter-name>EncodingFilter</filter-name><!-- 表示对所有.do结尾的进行过滤 --><url-pattern>*.do</url-pattern></filter-mapping><!-- 启动struts框架的servlet --><servlet><servlet-name>struts</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><!-- struts的配置文件 --><param-value>/WEB-INF/struts-config.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>struts</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>
</web-app>
复制代码

8.实现struts-config.xml中的result.jsp结果页面视图,用来显示结果,右击第3步创建的page文件 夹,New-->Other(选中Show All Wizards)-->web-->JSP File-->Next-->File name输入result.jsp-->finish

                                                    

生成的JSP文件默认编码为” ISO-8859-1”需要改成你需要的,比如我们用”UTF-8”

修改后如下:

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>结果页</title>
</head>
<body><% String name = request.getParameter("name");out.println(name);%>您好~
</body>
</html>
复制代码

9.实现struts-config.xml中的“com.bravestarr.formbean.MyForm“继承自ActionForm

右击项目名-->New-->Class-->进入如下配置后点击finish

                                                    

修改代码如下

复制代码
package com.bravestarr.formbean;import org.apache.struts.action.ActionForm;public classMyForm extends ActionForm {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}
复制代码

10.实现struts-config.xml中的“com.bravestarr.action.MyManageAction”继承自DisPatchAction,右击项目名-->New-->Class-->进入如下配置后点击finish

                                                    

然后重写execute(ActionMapping mapping, ActionForm form,     HttpServletRequest request, HttpServletResponse response)方法,然后随便改个方法名字如下

复制代码
package com.bravestarr.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;public classMyManageAction extends DispatchAction {public ActionForward showInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)  throws Exception {MyForm myForm= (MyForm)form;System.out.println("name="+myForm.getName());return mapping.findForward("result");}
}
复制代码

打开浏览器,输入http://localhost:8080/web/manage.do?method= showInfo &name=zhangsan 能看到“zhangsan您好”就说明成功了

转载于:https://www.cnblogs.com/xgjblog/p/3633559.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AlphaZero登上《科学》封面:一个算法“通杀”三大棋,完整论文首次发布

来源&#xff1a;量子位作者&#xff1a;乾明 一璞 栗子 晓查不仅会下围棋&#xff0c;还自学成才横扫国际象棋和日本将棋的DeepMind AlphaZero&#xff0c;登上了最新一期《科学》杂志封面。同时&#xff0c;这也是经过完整同行审议的AlphaZero论文&#xff0c;首次公开发表。…

自编码器及相关变种算法简介

本文对自编码器&#xff08;Auto-Encoder&#xff09;算法及其相关变种算法进行简要介绍&#xff0c;其中包括 Regularized Auto-Encoder、Sparse Auto-Encoder、Denoising Auto-Encoder 和 Contractive Auto-Encoder&#xff0c;重点讨论各算法的基本思想及优化时所需目标函数…

pytorch数据预处理

一&#xff0c;数据加载 数据路径&#xff1a; #coding:utf-8 import torch as t from torch.utils import data import os from PIL import Image import numpy as npclass DogCat(data.Dataset):def __init__(self, path):imgs os.listdir(path)# 所有图片的绝对路径# 这里…

太阳系“首个星际访客”未被探测到人工信号

来源&#xff1a;新华网去年发现的雪茄形天体被认为是太阳系“首个星际访客”&#xff0c;其真实身份一直受到全球天文学家高度关注。美国搜索外星文明研究所&#xff08;SETI&#xff09;最新研究称&#xff0c;这个天体没有被探测出“人工”的无线电信号&#xff0c;但这不能…

协方差理解,PCA以及奇异值分解(SVD)

一.PCA PCA通过正交变换将一组由线性相关变量表示的数据转换为少数几个由线性无关变量表示的数据&#xff0c;这几个线性无关的变量就是主成分。PCA通过将高维数据维度减少到少数几个维度&#xff0c;本质上属于一种数据降维方法&#xff0c;也可以用来探索数据的内在结构。 …

ASP.NET MVC获取上传的路径

刚才有网友问及&#xff0c;怎样获取<input typefile>的值&#xff1f; Insus.NET测试了一下&#xff0c;在Inetnet Explor之下似乎没有问题&#xff0c;但是FireFox获取到的只是文件名。 在MVC的控制器中&#xff0c;创建一个视图Action&#xff0c;超简单如下&#xff…

python的继承与多态

一.继承 class Person(object):def __init__(self, name, sex):self.name nameself.sex sexdef print_title(self):if self.sex "male":print("man")elif self.sex "female":print("woman")class Child(Person): # Child 继承 …

如何在算法交易中使用AI?摩根大通发布新版指南

来源 &#xff1a;efinancialcareers.com作者 &#xff1a;Sarah Butcher编译&#xff1a;机器之能 张玺摘要&#xff1a;如果你对银行与金融领域的 AI 应用有兴趣的话&#xff0c;你肯定了解 JPM&#xff08;摩根大通&#xff09;最近十年对大数据和人工智能的出色运用&#x…

生命简史

来源「新原理研究所」&#xff08;ID&#xff1a;newprincipia&#xff09;摘要&#xff1a;地球上的生命是如何开始的&#xff1f;未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&…

Array()数组

数组的定义 var arr [1, 2, 3, 4, "one", "two", "three", "four"]; //一维数组 var props [["拳头", "刀", "枪"], ["boxing", "knife ", "gun"]]; //二维数组 调用 …

成立 5 周年:一文览尽 Facebook 人工智能研究院历年重要成果

来源&#xff1a;AI科技评论五年前&#xff0c;Yann LeCun 等人创建了 Facebook 人工智能研究院 (Facebook AI Research&#xff0c;FAIR)&#xff0c;试图通过开放的研究环境促进人工智能的发展&#xff0c;进而造福所有人——他们努力的目的是为了理解智慧的本质&#xff0c;…

利用opencv对图像和检测框做任意角度的旋转

一.钢筋比赛中的数据扩充 #coding:utf-8 #数据集扩增 import cv2 import math import numpy as np import xml.etree.ElementTree as ET import osdef rotate_image(src, angle, scale1):w src.shape[1]h src.shape[0]# 角度变弧度rangle np.deg2rad(angle) # angle in r…

中国科学家将绘制最精细人脑三维“地图”

骆清铭在检查实验结果。&#xff08;受访者供图&#xff09;来源&#xff1a;新华社客户端作者&#xff1a;喻菲 胡喆 李博 夏鹏为什么有的大脑能洞见美妙的宇宙法则&#xff0c;有的能创作出扣人心弦的乐曲与画作&#xff1f;记忆和意识是如何产生的&#xff1f;人类虽已能观察…

python解析xml+得到pascal voc xml格式用于目标检测+美化xml

1.python解析xml img_path./data/001.tifxml_path./xml/001.xmlimgcv2.imread(img_path)# cv2.imshow(img, img)# cv2.waitKey(0)print(img.shape)try:xmlp ET.XMLParser(encoding"utf-8")tree ET.parse(xml_path, parserxmlp)root tree.getroot()print(tree)prin…

美权威报告:量子计算十年内无法落地

来源&#xff1a;云头条摘要&#xff1a;美国方面称&#xff0c;它对这项复杂的技术何时真正大有用武之地毫无头绪。美国国家科学、工程和医学科学院本周发布了一份介绍量子计算现状的报告。考虑到有人推测这类设备可能使目前的加密方案变得毫无价值&#xff0c;这个话题令人不…

“深绿” 及 AlphaGo 对指挥与控制智能化的启示

来源&#xff1a;《指挥与控制学报》摘要&#xff1a; 随着未来战争日趋复杂、人工智能突飞猛进, 指挥与控制向智能化发展成为大势所趋. 美军的 “深绿” 计划项目虽因各 种原因暂停, 但其思路和方法值得借鉴. AlphaGo 在围棋领域战胜人类顶尖水平, 其采用的方法也有一定的参考…

熵的基础知识,特征工程,特征归一化,交叉验证,grid search,模型存储与加载

1.自信息&#xff1a; 2.信息熵 3.p对Q的KL散度&#xff08;相对熵&#xff09; 证明kl散度大于等于0 4.交叉熵 可看出交叉熵信息熵相对熵 数据集地址&#xff1a;水果数据集_机器学习水果识别,水果分类数据集-机器学习其他资源-CSDN下载 一&#xff0c;类别型特征和有序性特…

5G与AI深度融合,人类世界即将产生巨变

来源&#xff1a;系数据观整理自网络摘要&#xff1a;近几年&#xff0c;科技界有两大领域越来越热&#xff1a;一个是5G&#xff0c;一个是AI。两者都是能够改变时代的颠覆性技术。单独看5G或AI技术&#xff0c;它们的发展都面临重重挑战&#xff0c; 我们不妨脑洞大开&#x…

统计学第一章--最小二乘拟合正弦函数,正则化

#coding:utf-8 import numpy as np import scipy as sp from scipy.optimize import leastsq import matplotlib.pyplot as plt # 目标函数 def real_func(x):return np.sin(2*np.pi*x)# 多项式 def fit_func(p, x):f np.poly1d(p)# print(f,f)return f(x)# 残差 def residual…

装配式建筑连入自动驾驶技术,未来城市的房子居然是这个样子......

来源&#xff1a;gooood谷德设计网概念如果说古典的城市是关于神的&#xff0c;现代城市是关于资本和权力的&#xff0c;那么未来的城市就应该是关于人与自然的。人在朝朝暮暮&#xff0c;山山水水&#xff0c;风风雨雨&#xff0c;一草一木天地之间无不有感而发&#xff0c;触…