Mac OS中Java Servlet与Http通信
Java中一个Servlet其实就是一个类,用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。Servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用定义了一个特定于HTTP的servlet类,基类是HttpServlet。Servlet本身是有生命周期的,有兴趣的可以搜索其他文章,实现Java Servlet与Http通信,本文中需要下JDK(http://www.oracle.com/technetwork/java/javase/downloads/index.html)
,Tomcat(具体过程可以参考上篇文章Mac下Apache Tomcat安装配置),Ecliplse For Java EE(http://www.eclipse.org/downloads/)
1.Eclipse下载

2.启动Eclipse,新建Java Web项目;

3.项目基本设置,设置运行的Tomcat版本,设置Servlet版本;

如果没有特别的需求直接Finish即可,最终的目录如下,Java Resources中的Src目录设置存放类文件,WebContent可以存放JSP和Html文件,注意Web-INF下没有Web.xml,这是新版本的特性;

4.如果第三步没有直接Finish而是Next应该是后面的两步是这样的:

可以勾选是否需要web.xml,本文中不需要,根据自己的情况选择;

5.WebContent下新建Html或者JSP文件:

Html中代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Html测试</title>
</head>
<body>
博客园-FlyElephant(http://www.cnblogs.com/xiaofeixiang)
</body>
</html>
运行地址http://localhost:8080/WebDemo/FirstDemo.html

JSP页面运行类似,就没有演示了,接下来介绍一下Servlet;
6.Servlet文件

设置一下直接Finish,不用设置包名;

FirstServlet.java中的代码如下:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class FirstServlet
*/
@WebServlet("/FirstServlet")
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public FirstServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
} }
7.doGet方法中加入一段输出代码,浏览会看到应有的效果:
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML>");
out.println("<Html>");
out.println("<Head><title>FirstServlet</title></Head>");
out.println("<Body>");
out.print("FirstServlet----");
out.println("FlyElephant(http://www.cnblogs.com/xiaofeixiang)");
out.println(" </Body>");
out.println("</Html>");
out.flush();
out.close();
效果如下:

8.第6步如果不直接Finish,Next之后的两个选择选项如下:

选择实现的方法:

Mac下简单的Java Web开发过程算是完成了,没有太多说教的东西,能满足基本的使用,如果有问题,欢迎私信我或者评论区交流~
参考资料:Servlet的3.0特性(http://www.ibm.com/developerworks/cn/java/j-lo-servlet30/#major3)
Mac OS中Java Servlet与Http通信的更多相关文章
- 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。
写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...
- Qt在windows与Mac OS中获取执行程序版本号
1 windows中获取执行文件exe的版本号 QString GetFileVertion(QString aFullName) { QString vRetVersion; string vF ...
- VMware Mac OS中无法找到适应的分辨率的解决办法
使用VMware安装的Mac OS中,有时在显示器的分辨率中的选择项里面,没有对应显示的分辨率可供选择的时候(无法自适应),可以在虚拟机设置里,显示器中修改强制分辨率.修改过后重启虚拟机,就可以有对应 ...
- mac os中的一些快捷键使用及基础软件安装
mac os中terminal标签页的切换 Command+Shift+{} { 切换到左边的标签页 } 切换到右边的标签页 普通键盘对应于mac下的按键: CTRL->CONTROL WIN ...
- MAC OS 中mount nfs 报错问题.
记一下 MAC OS 中mount nfs 报错问题. 环境和配置文件 NFS 服务端 Ubuntu 安装 apt install nfs-kernel-server 服务端的配置文件 cat /et ...
- 如何在mac os中安装gdb及为gdb进行代码签名
1. 安装gdb GDB作为一个强大的c/c++调试工具,一直是程序猿们的良好伴侣,但转到Mac os才发现竟然没有默认安装,所幸还有强大的homebrew工具: brew install homeb ...
- MAC OS中Eclipse无法导入(import)工程怎么办?
我用的MAC OS是10.8.4,Eclipse版本是 Eclipse IDE for Java Developers Version: Juno Service Release 2 Build id ...
- MAC OS中使用ll,la命令
在linux下习惯了使用ll.la等ls别名 用mac os发现没有这样的命令,很不方便. 其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可:alias ll='ls ...
- 在mac os 中安装 autoconf and automake
转载地址:http://www.mattvsworld.com/blog/2010/02/install-the-latest-autoconf-and-automake-on-mac-os-10-6 ...
随机推荐
- web服务端安全之文件上传漏洞
一.文件上传漏洞的原理 由于程序代码未对用户提交的文件进行严格的分析和检查,导致攻击者可以上传可执行的代码文件,从而获取web应用的控制权限. 常见于上传功能,富文本编辑器. 二.文件上传漏洞的防御 ...
- yyyy-MM-dd HH:mm:ss is Invalid Date in Safari, IE等浏览器下
一.踩坑背景 在做某个项目的过程中,系统要求兼容safari,在使用Element-ui情况下,用到了datepicker组件,但是datepicker在type为daterange情况下,页面首次加 ...
- Trie树之C-实现
title: Trie树之C++实现 comments: true date: 2016-10-02 16:59:54 categories: 算法 tags: Trie树 前言 之前写了一篇偏向于理 ...
- PyQt QString 与 Python str&unicode
昨日,将许久以前做的模拟网页登录脚本用PyQt封装了一下,结果出大问题了, 登录无数次都提示登录失败!!而不用PyQt实现的GUI登录直接脚本登录无数次都提示登录成功!!心中甚是伤痛,于是探究起来,解 ...
- python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- Codeforces Round #234 (Div. 2) A. Inna and Choose Options 模拟题
A. Inna and Choose Options time limit per test 1 second memory limit per test 256 megabytes input st ...
- 离线下载Xcode的文档
https://developer.apple.com/library/downloads/docset-index.dvtdownloadableindex 找到里面的文档下载地址 例如iOS 8. ...
- 快速定位问题 Request无法获取参数
比如说最近开发甲修改了iframe标签的src,开发乙在设置src的时候传入了2个参数,通过iframe标签链接到这个页面时,开发乙调试时发现没有拿到任何参数值.然后开发乙百度了一下,发现iframe ...
- MySQL的冷备份和热备份概念理解(转)
一.冷备份(off, 慢, 时间点上恢复) 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库.冷备份是将关键性文件拷贝到另外位置的一种说法.对于备份数据库信息而言,冷备 ...
- 【ButterKnife】 安卓程序猿的一大利器
注:近期才看到的这个类库,来自于jakewharton大神的力作,安卓里面的视图注入库 另小弟水平有限,翻译的不好,还请多多指正 首先是地址(托管在github上):http://jakewharto ...