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这样也可以获取值哇
[解决办法]
</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开发,都是请求--应答模式。
个人见解,供参考。