当前开发Web应用中,尤其是互联网及移动互联网网站,PHP是绝对的主流。另外,Python也以小清新的姿态,越来越在技术为导向的项目中采用。而一些敢于尝新者,也有应用node.js来开Web网站的例子。而前些年风光无限的Java,如今在Web开发领域,逐渐处于边缘化状
当前开发web应用中,尤其是互联网及移动互联网网站,php是绝对的主流。另外,python也以小清新的姿态,越来越在技术为导向的项目中采用。而一些敢于尝新者,也有应用node.js来开web网站的例子。而前些年风光无限的java,如今在web开发领域,逐渐处于边缘化状态。然而,单就语言本身而言,无论从表现能力、性能、可扩展性方面来看,java语言无疑是很优秀的,造成java在web领域困境的根本原因,不在于java语言本身,而在于java业者的思维定式。java业者过分重视框架,这直接导致了诸如struts+spring+hibernate这种重量级ssh框架的流行,是敏捷开发团队不能承受之重。另外,java一直崇尚jee企业级应用开发,由此ejb、jca等技术大行其道,而这些是典型的屠龙术,具有讽刺意味的是,当前大容量、高并发的系统,基本没有jee开发出来的。
综上所述,Java语言本身很优秀,但是受框架和规范的拖累,在敏捷开发领域逐渐势微。但是如果我们可以转变思路,采用目前主流PHP的开发模式,相信Java以语言的完备性和性能上的优势,在Web开发方面还是大有可为的。
首先我们来分析一下一个典型的PHP应用的处理流程,用户首先请求一个index.php页面,在该页面中完成各种初始化工作,同时将其路由到对应的Controller,执行业务逻辑,生成需要供页面显示的Model,然后调用页面模板,将Model内容显示到页面中去。
将上棕思路直接映射到Java中,可以得到一个超简单的Web框架。
首先,一个Web应用有一个Servlet,所有用户请求都经过这个Servlet来处理。如下所示:
立即学习“PHP免费学习笔记(深入)”;
/**
* 无论POST还是GET请求,均通过本函数进行处理
* @param request
* @param response
* @throws IOException
* @throws ServletException
*/
public void doProcess(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
request. setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Type", "text/html; charset=utf-8");
PrintWriter out = response.getWriter();
// 求出请求命令
String cmd = "none";
if (request.getParameter("cmd") != null) {
cmd = request.getParameter("cmd");
}
// 根据请求命令调用不同方法
switch (cmd) {
case "dispApplyCapital":
dispApplyCapital(request, response);
break;
}
}
Ke361是一个开源的淘宝客系统,基于最新的ThinkPHP3.2版本开发,提供更方便、更安全的WEB应用开发体验,采用了全新的架构设计和命名空间机制, 融合了模块化、驱动化和插件化的设计理念于一体,以帮助想做淘宝客而技术水平不高的朋友。突破了传统淘宝客程序对自动采集商品收费的模式,该程序的自动 采集模块对于所有人开放,代码不加密,方便大家修改。集成淘点金组件,自动转换淘宝链接为淘宝客推广链接。K
0
private void dispApplyCapital(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String json = "{\"name\":\"yt闫涛\", \"userId\":200}";
request.setAttribute("json", json);
Map<String, String> model = new HashMap<String, String>();
model.put("page_title", "股票交易");
model.put("header_title", "交易v1");
JSONArray capOpts = new JSONArray();
JSONObject capOptsItem = null;
try {
capOptsItem = new JSONObject();
capOptsItem.put("amount", 1);
capOpts.put(capOptsItem);
capOptsItem = new JSONObject();
capOptsItem.put("amount", 10);
capOpts.put(capOptsItem);
capOptsItem = new JSONObject();
capOptsItem.put("amount", 100);
capOpts.put(capOptsItem);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
model.put("capOpts", capOpts.toString());
model.put("procFeeRatio", "0.00399");
model.put("marginRatio", "0.08");
request.setAttribute("model", model);
this.getServletContext().getRequestDispatcher("/caporder/apply_capital.jsp")
.forward(request, response);
}在页面中实现模板技术,Java的主流方法是采用Tag,通过加入Tag来实现在模板不同位置添加不同内容。但是PHP是直接采用require_once来实现包含其他页面的功能,因此我们也直接采用JSP中的来实现,具体代码如下所示:
<%@page contentType="text/html;charset=UTF-8"%>
<%@ include file="/header.jsp" %>
<script>
var g_mjson = null;
$(document).ready(function(){
g_mjson = <%=model.get("capOpts")%>;
var opts = "";
var i = 0;
for (i=0; i<g_mjson.length; i++) {
opts += "<input type='radio' name='applyAmount' value='" + g_mjson[i].amount + "'>" + g_mjson[i].amount + "万 ";
}
$("#capOpts").html(opts);
var procFeeRatio = <%=model.get("procFeeRatio")%>;
$("#procFeeTxt").val("0.0");
$("input[name='applyAmount']").click(function(eve) {
alert("click me! v1 v=" + $("[name='applyAmount']:checked").val() + "!");
$("#procFeeTxt").val(procFeeRatio*10000.0);
});
});
</script>
实盘申请<%=model.get("capOpts")%><br />
申请金额:<span id="capOpts"></span><input type="text" id="amount" /><br />
手续费:<input type="text" id="procFeeTxt" readonly /> 金币账户:<a href="#">立即充值</a><br />
保证金:钱包账户:<a href="#">立即充值</a><br />
<input type="button" value="确认申请" />
<input type="button" value="取消申请" /><br />
<%@ include file="/footer.jsp" %>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号