JavaWeb开发——上手部分

旨在解释一些简单到不行但搞不出来会掉头发的问题。(自己给自己增加了8个浏览量!)

Eclipse缺少插件

Help-Install New Software;

Work With下输入:Oxygen - http://download.eclipse.org/releases/oxygen

扫描二维码关注公众号,回复: 2687434 查看本文章

选择:Web,XML,Java EE and OSGi Enterprise Development 下的如下四项:

下载后重启Eclipse即可。


安装Run environment 时Apache下没有Tomcat选项

仍然是缺少插件,方法同上;此处需要安装的是:JSE Server Adapters, JSE Server Adapters Extension。


服务器环境配置

参考:https://blog.csdn.net/df19900725/article/details/77755654#四服务器环境设置


运行第一个servlet程序

最终的目录结构:


1. 新建Java Web项目

New-Dynamic Web Project

2. 导入jar包

新建lib文件夹,将tomcat/lib/servlet-api.jar拷贝到此处。右键,Bulid Path;完成。

3. 新建servlet

New-Servlet,给定类名,Next;

修改URL Mapping:

4. doGet()方法中,写测试代码

String param = request.getParameter("userName");
String str = "<html><body><h1>" + param;
str = str + " hello world!</h1></body></html>";
response.getWriter().write(str);

5. 运行

在当前servlet上右键,Run As - Run on Server

创建一个Server:

选择对应的Tomcat版本;

选择Tomcat路径,运行。

成功:

一个很诡的问题:

实现html与servlet传递信息:

HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
	<form method="post" action="servlet/InputMoneyServlet">
		<fieldset>
			<legend>请输入姓名和金额</legend>
			姓名:<input type="text" name="userName" id="userName" /> <br /> 金额:<input
				type="number" name="money" id="money" /> <br /> <input
				type="submit" value="提交" />
		</fieldset>
	</form>
</body>
</html>

Servlet:

	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//接受用户请求
		System.out.println("request character encoding:"+req.getCharacterEncoding());
		req.setCharacterEncoding("utf-8");
		String userName=req.getParameter("userName");
		String strMoney=req.getParameter("money");
		System.out.println("InputMoneyServlet.doGet() userName:"+userName);
		//生成响应文档
		resp.setCharacterEncoding("utf-8");
		String str="<!DOCTYPE html><html><head><meta charset='utf-8'></head>";
		str=str+"<body><h1>姓名:"+userName+"</h1>";
		try{
			double money=Double.parseDouble(strMoney);
			str=str+"<h1>金额:"+money+"</h1></body></html>";
		}catch(Exception ex){
			str=str+"<h1>金额:异常输入</h1></body></html>";
		}
		resp.getWriter().write(str);
	}

开始是,html文件的action写错了,但之后在修改action为servlet/InputMoney/Servlet,仍旧访问最初写错了的servlet。最终是靠删除html,再新建html,完成。

问题在于,修改后再次运行,程序仍然默认运行前一次运行成功的结果;并没有按照修改后的程序运行。但这是为什么呢?如何解决?

猜你喜欢

转载自blog.csdn.net/shelly_Chestnut/article/details/80959640
今日推荐