求java服务器端大神,解释一下servlet这些名词概念吧。。 服务器servletjavaweb应用spring 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 servlet 这个是容器嘛?Servlet是sun公司提供的一门用于开发动态web资源的技术。Sun公司在其API中提供了一个servlet接口,用户若想使用Java程序开发一个动态web资源,只需编写一个servlet接口的实现类,并把这个类部署到web服务器中,就算开发好了一个动态web资源。按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。随便写一个小程序把客户端发来的请求转发回去这也叫服务器?我的理解:是的下面是Servlet容器服务器原理 简易实现代码,当然服务器肯定没这么简单,只是帮助理解..package cn.itcast.web1;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;/** * 静态的网页服务器 * * @author APPle * */public class StaticWebServer { public static void main(String[] args) { int port = 8888; try { // 开启服务器,等待客户端的链接 ServerSocket ss = new ServerSocket(port); System.out.println("服务器已经启动,正在监听" + port + "端口..."); // 不断地接收客户端的请求 while (true) { final Socket socket = ss.accept(); // 用多线程可以处理多个客户端的请求 new Thread() { public void run() { try { // 接收客户端发送过来的信息 InputStream in2 = socket.getInputStream(); for (int b = -1; (b = in2.read()) != -1;) { System.out.print((char) b); } BufferedReader br = new BufferedReader( new InputStreamReader( socket.getInputStream())); // 请求行 String requestLine = br.readLine(); // GET /a.html HTTP/1.1 // GET /b.html HTTP/1.1 // GET /news/aaa.html HTTP/1.1 // 客户端请求资源的名称 String request = requestLine.split(" ")[1]; String base = "e:/myweb"; // 请求资源在本机上路径 String resPath = base + request; // 如果请求根目录的时候,返回一个默认页面给客户端 if (request.equals("/")) { resPath = base + "/index.html"; } // 当找不到资源的时候,给客户端返回一个友好的404页面 File resFile = new File(resPath); if (!resFile.exists()) { resPath = base + "/404.html"; } // 把数据发送到网络的另外一端(客户端) OutputStream out = socket.getOutputStream(); InputStream in = new FileInputStream(resPath); for (int b = -1; (b = in.read()) != -1;) { out.write(b); } in.close(); socket.close(); } catch (Exception e) { e.printStackTrace(); } } }.start(); } } catch (Exception e) { e.printStackTrace(); } }} 谢谢你不过我主要是想问服务器端的各种框架是个什么关系啊像war包能不能部署非servlet的应用?有入口函数main的那种? 楼主,war包是包含web应用的一个包后缀名,servlet不是部署在war包上,servlet是一种java技术,就像你的socket一样,war包是包含了web程序的一个包,其中可以有servlet,可以有struts,可以有spring,可以有任何能在容器中运行的代码,只要按照标准目录来建立。现在回过头来,你是想把socket程序部署到sae上面,也有办法,你自己写一个jsp页面,调用后台的servlet,servlet再调用你那个socket程序,这样就可以了。 新人报道!求指教 类型转换? 类型转换错误 字符串匹配的问题 急救:jasperreport+ireport的奇怪问题!搞了3天了也没解决,帮帮我吧! 又惊天一问!怎么解析JSF中的表达式。myfaces中,我做了个组件,具体如下: java解析PDF的问题???? hibernate查询问题 无法安装JB 10 郁闷 解决就散分!!!急急!! [求解]相同程序不同weblogic环境,一个环境可以正常使用,另一个环境不能正常使用 为什么用session把物品添加进去,再添加第二个的时候session自动刷新了? 从Mysql里面随机取几条数据,更新这几天,怎么锁定?
Servlet是sun公司提供的一门用于开发动态web资源的技术。Sun公司在其API中提供了一个servlet接口,用户若想使用Java程序开发一个动态web资源,只需编写一个servlet接口的实现类,并把这个类部署到web服务器中,就算开发好了一个动态web资源。按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。随便写一个小程序把客户端发来的请求转发回去这也叫服务器?我的理解:是的
下面是Servlet容器服务器原理 简易实现代码,当然服务器肯定没这么简单,只是帮助理解..
package cn.itcast.web1;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;/**
* 静态的网页服务器
*
* @author APPle
*
*/
public class StaticWebServer { public static void main(String[] args) {
int port = 8888;
try {
// 开启服务器,等待客户端的链接
ServerSocket ss = new ServerSocket(port);
System.out.println("服务器已经启动,正在监听" + port + "端口..."); // 不断地接收客户端的请求
while (true) { final Socket socket = ss.accept(); // 用多线程可以处理多个客户端的请求
new Thread() {
public void run() {
try {
// 接收客户端发送过来的信息
InputStream in2 = socket.getInputStream();
for (int b = -1; (b = in2.read()) != -1;) {
System.out.print((char) b);
}
BufferedReader br = new BufferedReader(
new InputStreamReader(
socket.getInputStream())); // 请求行
String requestLine = br.readLine();
// GET /a.html HTTP/1.1
// GET /b.html HTTP/1.1
// GET /news/aaa.html HTTP/1.1
// 客户端请求资源的名称
String request = requestLine.split(" ")[1]; String base = "e:/myweb"; // 请求资源在本机上路径
String resPath = base + request; // 如果请求根目录的时候,返回一个默认页面给客户端
if (request.equals("/")) {
resPath = base + "/index.html";
} // 当找不到资源的时候,给客户端返回一个友好的404页面
File resFile = new File(resPath);
if (!resFile.exists()) {
resPath = base + "/404.html";
} // 把数据发送到网络的另外一端(客户端)
OutputStream out = socket.getOutputStream();
InputStream in = new FileInputStream(resPath); for (int b = -1; (b = in.read()) != -1;) {
out.write(b);
}
in.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
} } catch (Exception e) {
e.printStackTrace();
}
}
}
谢谢你不过我主要是想问服务器端的各种框架是个什么关系啊
像war包能不能部署非servlet的应用?有入口函数main的那种?