webxml配置有问题,如果是我,我会这么修改
<servlet-name>ServletInit</servlet-name>
<servlet-class>ServletInit</servlet-class>
改为
<servlet-name>ServletInit</servlet-name>
<servlet-class>testServletInit</servlet-class> //类路径,如果你这个类有出现这个字样package test;
<servlet-mapping>
<servlet-name>ServletInit</servlet-name>
<url-pattern>/servlet/ServletInit</url-pattern> //注意这个路径
</servlet-mapping>
改为
还有jsp页面,调用如下
action="/servlet/ServletInit"
这个路径实际上就是你的<url-pattern>/servlet/ServletInit</url-pattern>的参数
如果这样还找不到路径,jsp页面这样调用
action="<%=requestgetContextPath()%>/servlet/ServletInit"
一起学习吧
sevlet能直接运行,需要环境支持的。
不同的web服务器都是servlet容器,这些服务器通常都有一些配置文件、jar、启停脚本等等。需要把Web应用打成WAR包部署到Tomcat中,在Web应用中要指明URL被哪个类的哪个方法所处理(不论是原始的Servlet开发,还是流行的Spring MVC都必须指明)。
服务器将对应的Servlet(比如HelloServlet)实例化,调用Servlet实例的service方法。服务器会将request和response作为参数传递给service方法,可以通过request对象获取请求数据(比如一些请求参数值),通过response对象写入处理结果。
sevlet运行:
服务器通过response对象获取处理结果,创建响应数据包,服务器发送响应数据包给浏览器。浏览器解析响应数据包,并且生成相应的页面。传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。
在>
前台用AJAX将json数据传入后台,同样,后台将数据封装在json串中可传入前台,
前台用ajax的回调函数响应:
示例:
前台脚本:
<script>
$(function(){
$("a")click(function(){
var url = thishref;
var args = {"time":new Date()};
$getJSON(url,args,function(data){ //回调函数的参数data就是后台封装的json串
$("#bookName")text(databookName); //data属性名 读json串中的内容
$("#totalMoney")text(datatotalMoney);
$("#totalBook")text(datatotalBook);
});
return false;
});
})
</script>
后台封装:在servlet类中代码:
//准备响应JSON对象:
StringBuilder result = new StringBuilder();
resultappend("{")append("\"bookName\":\""+bookName+"\"")append(",")append("\"totalMoney\":"+scgetTotalMonry())append(",")append("\"totalBook\":"+scgetTotalNumber())append("}"); //构建json串
responsesetContentType("text/javascript"); //声明类型防止乱码
responsegetWriter()print(resulttoString()); //响应JSON
当服务器端通过>
Servlet通过这些类理解客户的请求,并将其处理后的内容通过>
Web容器进行整理后用>
生命周期
Servlet实例的装载
Servlet 实例装载有以下三种方式:
当第一次调用Servlet 时,就会创建一个 Servelt 实例,这个实例会长期驻留内存中。
在Webxml文件中的<Servlet></Servlet>之间添加如下代码:<loadon-startup>1</loadon-startup>,Servelt 容器启动时会自动装载这个Servlet,数字越小表示优先级别越高。
Servlet 类文件被更新后,会重新装载Servlet。
jsp和servlet的区别有以下几点:
Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。
1、jsp经编译后就变成了Servlet。
2、jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。
3、Servlet中没有内置对象,Jsp中的内置对象都是必须通过>
4、而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。
扩展资料:
Servlet和JSP的不同点:
1、Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
2、而JSP的情况是Java和HTML可以组合成一个扩展名为jsp的文件。
3、JSP侧重于视图,Servlet主要用于控制逻辑
4、Servlet更多的是类似于一个Controller,用来做控制。
参考资料来源:百度百科-servlet
下面是服务器端的jsp代码:
与JQuery中其他方法一样,serialize()方法也是作用于一个JQuery对象,它能够将DOM元素内容序列化为字符串,用于ajax请求。通过使用serialize()方法,可以提交本页面的所有域,代码如下:
当单击“提交”按钮后,所有属于form1的表单元素都能提交到后台,即使在表单中再增加字段,脚本仍然能够使用,并且不需要做其他多余工作。
用字符串方式时,需要注意对字符编码(中文问题),如果不希望编码带来麻烦,可以使用serialize()方法,它会自动编码。
因为serialize()方法作用于JQuery对象,所以不光只有表单能使用它,其他选择器选取的元素也都能使用它,如以下JQuery代码:
$(":checkbox,:radio")serialize()
把复选框和单选框的值序列化为字符串形式,只会将选中的值序列化。
在JQuery中还有一个与serialize()类似的方法--serializeArray(),该方法不是返回字符串,而是将DOM元素序列化后,返回JSON格式的数据。JQuery代码如下:
var fields = $(":checkbox,:radio")serializeArray()
consolelog(fields); //用FireBug输出
$param()方法是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化。
比如将一个普通的对象序列化:
var obj = {a:1,b:2,c:3}
var k = $param(obj)
alert(k); //输出a=1&b=2&c=3
请求后台的servlet 中的方法后,响应回来的值,data就是这个值
拓展:
1、当Web刚开始被用来传送服务时,服务提供者就已经意识到了动态内容的需要。Applet是为了实现这个目标的一种最早的尝试,它主要关注使用客户端平台来交付动态用户体验。与此同时,开发人员也在研究如何使用服务器平台实现这个目标。开始的时候,公共网关接口(Common Gateway Interface ,CGI)脚本是生成动态内容的主要技术。
2、虽然使用得非常广泛,但CGI脚本技术有很多的缺陷,这包括平台相关性和缺乏可扩展性。为了避免这些局限性,Java Servlet技术因应而生,它能够以一种可移植的方法来提供动态的、面向用户的内容。处理用户请求。
>
setAttribute这个方法,在JSP内置对象session和request都有这个方法,这个方法作用就是保存数据,然后还可以用getAttribute方法来取出。
比如现在又个User对象,User curruser = new User("zhangsan", 20, "男");
1,requestsetAttribute(“curruser”, curruser)这个方法是将curruser这个对象保存在request作用域中,然后在转发进入的页面就可以获取到你的值,如果你会一些框架的话,那些框架标签也可以获取到,比如struts标签,还有jstl。如果这你都不会的话,那么你可以在jsp页面编写java小脚本来获取:<% User myuser = (User)requestgetAttribute("curruser")%>,在jsp页面显示值:<%=myusergetName()%>。
2,sessionsetAttribute("curruser", curruser)。这个方法和上面唯一的区别就是作用域,就是在你整个程序启动的时候,如果在session中保存了数据,那么在你这个无论你在哪个页面,在什么时候都可以获取到这个值,全局的,只要你的这个程序是启动的。session默认的过期时间是30分钟,过期无效,可以去修改这个值。
以上就是关于js脚本调用servlet不成功,不知道问题出在哪儿了全部的内容,包括:js脚本调用servlet不成功,不知道问题出在哪儿了、sevlet能不能直接运行需不需要环境支持、JAVA中后台的Servlet程序怎么将结果返回给前台的页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)