首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

javaWEB前后台数据交互的步骤

2013-08-06 
javaWEB前后台数据交互的方法RT:JAVAWEB前后台数据交互的方法有哪些?jsp页面从后台取值的方法,后台从前台

javaWEB前后台数据交互的方法
RT:
JAVAWEB前后台数据交互的方法有哪些?jsp页面从后台取值的方法,后台从前台取值,JSP内部取值。
要求:DOM,AJAX,jquery,SSH(我所表达的意思大家能理解就行,新手,热烈欢迎挑刺)

我所知道的就是
request.setAttribute(),然后request.getAttribute().
request.getParameter(name)
request.getParameterValues(name).
session貌似也可以,不过概念不是很清楚。
JOSON貌似也可以,也不是很清楚。
OGNL知道什么意思,也不是很熟。
$(#"")这个不会使用,麻烦补充下。
$ajax()也不是很会


然后JSP内部的
document.getelementById().value()....先取元素,再取元素的值
document.getelementByNames().get(0).value()
document.all  不是很会使用,麻烦补充下,但是我知道大概的意思

跪求补充!!!!!!


热烈欢迎各位批评,指导!跪谢!!!!!!!!!!



[解决办法]
恩,这些基本都是常用的!
[解决办法]
可以参考FortuneJ
参考地址www.cnblogs.com/mail-rickee

中的AJAX+Servlet
[解决办法]
很多的。。
[解决办法]
JSP内部还有document.表单名.控件名.value这样也可以获取值哇
[解决办法]

引用:
大哥,能别一句话就打发我走啊!
能补充点其他的吗?
这些方法我是看别人写的,自己写有点虚。
貌似URL也可以"method.action?参数="+变量值

其实和你想的差不多
1,jsp内置对象 request session application
2,json ajax 
3,el表达式 jstl ognl strust标签
...(暂时想不起来)

你说的这个$(#"")是jquery  通过标签ID 获得该标签 更js的document.getElementById()用法相同
还有 你最后说的那些jsp内部的
document.getelementById().value()....
document.getelementByNames().get(0).value()
document.all 
这些都是javascrpit   获得页面标签的值  不会直接获得后台的值的!
[解决办法]
教楼主一个最牛逼的 AJAX-前台与后台数据交互框架 DWR,非常牛逼的,而且搭建起来也挺方便,给楼主一个地址,照着做就可以了哦,可以做到类调用方法的方式来处理前台数据哦!亲

简单介绍下使用DWR框架的基本步骤. 
1,下载dwr的jar包. 
2,将jar包复制到WEB-INF目录下的lib文件夹下. 
3,在web.xml中注册dwr的一个servlet. 
4,写相关的javaBean业务操作类及方法. 
5,写配置文件,取名为dwr.xml,与web.xml同一个目录下,注册将要操作的javaBean. 
OK,下面就来看个登录简单的实例吧.
web.xml文件如下: 
<servlet>   
<servlet-name>dwr-invoker</servlet-name>   
<servlet-class>uk.ltd.getahead.dwr.DWRServlet<!--此处必须这样写--> 


</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>dwr-invoker</servlet-name>   
<url-pattern>/dwr/*</url-pattern> 
</servlet-mapping>

dwr.xml文件如下: 
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> 
<dwr> 
<allow> <!--此处将pojos包下的所有javaBean转换为javascript对象使用--> 
<convert match="org.hj.pojos.*" converter="bean"></convert>   <!-- javascript的对象是user,create=“new”是DWR自己创建UserDelegate这个类的实例,其他的还有spring方式,通过与IOC容器Spring进行集成 --> 
<create javascript="user" creator="new"> 
<param name="class" value="org.hj.delegate.UserDelegate"></param>   <!-- include表示客户端可以通过user调用服务器对象的方法,如果不写,则表示可调用这个类的所有方法.可写可不写--> <include method="isLogin"/>   <exclude method="save"/><!--此处表示不允许调用的一个方法,可写可不写--> 
</create> 
</allow> 
</dwr>

处理业务的类及方法如下: 
public class UserDelegate { 
private static UsersDao dao=new UsersDao(); 
public boolean isLogin(String name,String pwd){ 
Users u=new Users(); 
u.setUsername(name); 
u.setPwd(pwd); 
return dao.isLogin(u);//(略...) 
}}..............
OK,最后就一个jsp页面.封装了很多方法供我们直接使用 
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
<html> 
<!--引入dwr根据dwr.xml中的javascript="user"此处,自动生动个user的js对象供使用--> 
<script type="text/javascript" src="${pageContext.request.contextPath}/dwr/interface/user.js"></script> 
<!--引入dwr的util.js--> 
<script type="text/javascript" src="${pageContext.request.contextPath}/dwr/util.js"></script> 
<!--引入dwr的engine.js--> 
<script type="text/javascript" src="${pageContext.request.contextPath}/dwr/engine.js"></script> 
</head>
<body> 
用户名:<input type="text" id="usename" /> 
密 码:<input type="password" id="pwd"/> 
<input type="button" value="登录" onclick="login()" /> 
</body> 
<script type="text/javascript"> 
function login(){ 
var usename=dwr.util.getValue("usename"); <!--通过dwr中的util得到文本框的值,必须是id的值-->
var pwd=dwr.util.getValue("pwd"); 
<!--此处为user对象远程调用服务器的isLogin方法,传参,还一个返回值,这里用一个匿名的回调函数来处理-->


user.isLogin(usename,pwd,function(isLogin){ 
if(isLogin) 
locatio.href="list.jsp"; (博客不支持,应该为location) 
else{ 
alert("用户名或密码错误"); 
return false; 

}); 

</script> 
</html> 
怎么样,是不是没有servlet了.dwr可直接访问服务器端方法.OK,
[解决办法]
ajax 当然会用到response 返回json

get 方式提交非中文参数也是可以的 
${ctx } 默认是从request中取值 可以显示的设置取值范围

struts2 将表单属性封装的更容易交互 
[解决办法]
基本上都总结的差不多了。
[解决办法]
前台传后台最好使用Form去post

不推荐使用session传值,不可行。
$(#"")#这个是jQuery的获取Id对应的控件值。

Struts2的话前后台传值,PO,和VO都可行。

最近做的一个根本不能用对象获取值的办法,就是循环获取控件的值,控件给以规律排序,

然后拿jQuery获取,然后在form里面放隐藏域,最后把jQuery拿到的值放到隐藏域中post的方式提交到后台

可以防止乱码。 
其实方式很多,自己也可以去做,去想。动手。
[解决办法]
帖子不错 mark一下!
[解决办法]
我感觉搂主一些问题没有说清楚!楼主所说的前台和后台,只是jsp和java代码吗?

前台和后台根据情况不同,有几种划分,举两个例子

    1、例如ssh,第一个s(struts)可以算前台,因为是展示层,其他的都算是后台,如果是这样,那request.setAttribute(),然后request.getAttribute()都算前台了,不存在前台后台数据交互。

    2、按照代码运行地方划分,js和html算是前台,因为都是运行在浏览器上,jsp最终被编译为servlet,所以也算后台,这样request.setAttribute(),然后request.getAttribute()都算后台了

web开发,都是请求--应答模式。

个人见解,供参考。

热点排行