Servlet(2)—java项目下web应用程序
在java项目下手动写一个web程序
步骤:
①创建一个java项目并在根目录创建一个WebContent目录文件
②WebContent下创建WEB-INF目录文件
③WEB-INF下创建classes和lib目录文件以及web.xml文件
④在项目根目录下的src目录文件中创建一个Person类,构造一个返回字符串的方法,将编译后得到的.class文件复制到
创建的classes文件中去(该.class文件在项目bin文件夹下,该文件夹在eclipse中并没有显示)
⑤创建一个jsp页面,在页面中创建Person实例,并调用方法
⑥把WebContent复制到tomcat中的webapp目录下,启动tomcat
⑦在浏览器中输入http://localhost:8080/manager/html,进入到tomcat管理页面中,点击项目WebContent
⑧运行项目之后,在浏览器中访问http://localhost:8080/helloworld/hello.jsp,在命令提示符中就会显示出,返回的字符串。目录结构
-WebConrtent
-WEB-INF(固定不可变)
-classes(固定不可变)
-lib
-web.xml
HTML页面
JSP页面
图片问题:以上步骤需要两部复制目录文件,一次是复制.class文件,再一次是复制WebContent目录文件,操作麻烦。
1.解决复制.class文件的办法:可以修改.class文件的默认生成目录,在项目上右键Build Path——>
Configure Build Path——>中间点击Source,
下面default out folder即是默认的.class文件的生成目录,修改即可。
2.解决复制Context文件的办法:首先在E:\apache-tomcat-7.0.55\conf\Catalina\localhost路径下创建一个.xml
文件,路径没有就创建一个,文件命名随意,如“hello.xml”,文件内容:
<Context path="\\test"
docBase="E:\\workspace\\Demo5\\WebContent" reloadable="true"/>
其中path的值随意,docBase的值为第一步所创建的context的文件路径,即实际文件路径。
reloadable是指当修改了docBase下的classes目录中的.class文件后,tomcat是否重新加载web应用 。
重新访问项目时,在tomcat管理程序中可以看到xml文件的名字,或者在浏览器中输入:
http://localhost:8080/hello/hello.jsp,其中hello便是创建的xml文件,hello.jsp是创建的context
目录下的jsp文件。
注意:.class文件一定要在classes目录中
- 创建的java文件和jsp文件及内容
java文件:
package test;
public class Person {
public String getInfo(){
return "Person....." ;
}
}
jsp文件:
<%@ page import="test.Person"%>
<%@ 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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Person person = new Person();
System.out.println(person.getInfo());
%>
hello World!
</body>
</html>
注意:请求一个页面时,页面上所运行的程序或者类是一个方法,同时根据web.xml中Servlet的配置文件运行另外的java类是另一方法。一个是页面请求根据配置文件,访问servlet,另一个是直接访问这个Servlet
比如:这个hello.jsp页面中用到了Person类,但是根据web.xml配置文件中,Servlet节点hello,就用到了HelloServlet类
运行jsp页面使用:http://localhost:8080/Demo4/hello.jsp
运行Servlet:http://localhost:8080/Demo4/hello
。
Servlet(2)—java项目下web应用程序的更多相关文章
- Java项目下jar包的放置
build path:引用 web-inf/lib:固定 eclipse编译项目是根据build path的.如果不用eclipse来发布项目的话,就会找不到jar. tomcat运行时首先在它自己的 ...
- Java项目下的classpath路径包括哪里
https://my.oschina.net/zjllovecode/blog/916927 classpath指的是.classpath下kind="src" 的路径
- 说说Java Web中的Web应用程序|乐字节
大家好,我是乐字节的小乐,今天接着上期文章<Javaweb的概念与C/S.B/S体系结构>继续往下介绍Java Web ,这次要说的是web应用程序. 1. Web 应用程序的工作原理 W ...
- 使用IzPack打包JAVA Web应用程序
使用IzPack打包JAVA Web应用程序步骤如下: 这里使用IzPack-4.3.5 + launch4j-3.1.0-beta1-win32.zip(绿色版)对Web应用程序打包,打包后即可对我 ...
- Java面试题 Web+EJB & Spring+数据结构& 算法&计算机基础
六.Web 部分:(共题:基础40 道,基础37 道,中等难度3 道) 122.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? [基础] 答:Web 容器加载Servlet ...
- 如何将常规的web 应用程序转化为云上多租户 SaaS 解决方案
如何将web 应用程序转化为多租户 SaaS 解决方案 https://www.ibm.com/developerworks/cn/cloud/library/cl-multitenantsaas/i ...
- web 应用程序转化为多租户 SaaS 解决方案
web 应用程序转化为多租户 SaaS 解决方案 https://www.ibm.com/developerworks/cn/cloud/library/cl-multitenantsaas/inde ...
- 第7章 使用springMVC构建Web应用程序 7.1 springMVC配置
最近在看spring in action第3版,这里搭建一个简单的spring mvc,也算书没白看,当然老鸟可以不屑了,这里只是给自己做个笔记,配置也尽量删烦就简, Spring MVC的核心是Di ...
- Java开发工程师(Web方向) - 02.Servlet技术 - 第3章.Servlet应用
第3章.Servlet应用 转发与重定向 转发:浏览器发送资源请求到ServletA后,ServletA传递请求给ServletB,ServletB生成响应后返回给浏览器. 请求转发:forward: ...
随机推荐
- (1).NET CORE微服务 Micro-Service ---- 什么是微服务架构,.netCore微服务选型
开发工具:VS2017 .Net Core 2.1 什么是微服务?单体结构: 缺点:1)只能采用同一种技术,很难用不同的语言或者语言不同版本开发不同模块:2)系统耦合性强,一旦其中一个模块有问题,整个 ...
- linux下几个常用软件
Ubuntu 软件包地址 https://packages.ubuntu.com/ 一. 字体 不管是雅黑还是宋体,从windows cp过来后, 直接双击打开并安装 二. Meld 可视的diff和 ...
- Python_lambda简单函数表达式
lambda表达式只能用于简单函数的书写 def funx(a): a+=1 return a print(funx(99)) 用lambda实现上面函数: funx = lambda a: a+1 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-1目录
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- spark学习之路1--用IDEA编写第一个基于java的程序打包,放standalone集群,client和cluster模式上运行
1,首先确保hadoop和spark已经运行.(如果是基于yarn,hdfs的需要启动hadoop,否则hadoop不需要启动). 2.打开idea,创建maven工程.编辑pom.xml文件.增加d ...
- HDU2449 Gauss Elimination 高斯消元 高精度 (C++ AC代码)
原文链接https://www.cnblogs.com/zhouzhendong/p/HDU2449.html 题目传送门 - HDU2449 题意 高精度高斯消元. 输入 $n$ 个 $n$ 元方程 ...
- TreeSet集合的自然排序与比较器排序、Comparable接口的compareTo()方法
[自然排序] package com.hxl; public class Student implements Comparable<Student> { private String n ...
- 实验3 敏捷开发与XP实践实验报告
一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:高君天 学号:20165319 指导教师:娄嘉鹏 实验日期:2018年4月27日 实验时间:13:45 - 3:25 实验序号:实验三 ...
- day 67 orm初识 {code_first/db_first}
1,我们是先创建一个django项目,要同时把app带上, 然后再django项目里面把settings部分设置好,按照我们一开始创建django项目的时候设置的那些,csrf以及templates还 ...
- day40 mycql 视图,触发器,存储过程,函数
视图,触发器,存储过程,自定义函数 -- 回顾 1.mysql 约束 1.非空 not null 2. 主键约束 primary key 3. 唯一约束 unique 4. 外键约束 foreign ...