我做一个二次开发,我在想jsp不是能嵌套java代码吗,所以想在jsp页面写servlet类 但是不知道怎么调用,
(不要告诉我写在java里面,因为不行我才写到jsp页面)
在web.xml配置 通过
<servlet>
<servlet-name>testServlet</servlet-name>
<jsp-file>/jsp/test.jsp</jsp-file>
</servlet>
确实能访问到test.jsp 但是不会不调用doGet() doPost方法
--以下是test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.esoon.cisiss.common.BaseServlet" %>
<%@ page import="java.io.IOException" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<script type="text/javascript">
alert("");
</script><%
class testServlet extends BaseServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.print("----------1-------");
System.out.print("--------2---------");
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}%>servletjsp类web.xmljava
(不要告诉我写在java里面,因为不行我才写到jsp页面)
在web.xml配置 通过
<servlet>
<servlet-name>testServlet</servlet-name>
<jsp-file>/jsp/test.jsp</jsp-file>
</servlet>
确实能访问到test.jsp 但是不会不调用doGet() doPost方法
--以下是test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.esoon.cisiss.common.BaseServlet" %>
<%@ page import="java.io.IOException" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<script type="text/javascript">
alert("");
</script><%
class testServlet extends BaseServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.print("----------1-------");
System.out.print("--------2---------");
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}%>servletjsp类web.xmljava
解决方案 »
- hibernate OneToOne 注解问题
- 请教JfreeChart多曲线图
- freemarker回显问题
- 求助jQuery formValidator 下载地址
- java如何取得webservice返回的对象
- 求javaBean做的分页
- 想问一下 JAVA 与 C/C++ 的前途 谁的好
- Udp协议的问题?
- 哪个网站能DOWNLOAD free computer books??
- 谁肯来这,超级郁闷,快疯掉了
- 最近在学activiti,遇到启动异常 org.hibernate.TransactionException: commit failed,希望大神指点
- 新人求教:关于ibatis的SqlMapClient,怎么避免异常声明?
怎麼寫 你看我寫的 但是訪問了,不會執行doPost()
你看我上面寫的是servlet 我想如果能通過ajax(js裏面)調用這個servlet
<%!
public void method(){
}
%>
来定义全局方法提供调用就好了,,另外 我尝试了使用楼主的方法,但是好像不行,每次都是执行jsp的_jspService ,,设置了url-pattern 亦如此。
我看编译文件终于发现了:这个servlet是定义在方法内的,直接调用肯定行不通。。具体我也不会。。
感觉没什么实用价值啊~在jsp里添加java代码本来就很乱,再写servlet恐怕连执行效率都会降低啊~
implements org.apache.jasper.runtime.JspSourceDependent { private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory(); private static java.util.List _jspx_dependants; private javax.el.ExpressionFactory _el_expressionfactory;
private org.apache.AnnotationProcessor _jsp_annotationprocessor; public Object getDependants() {
return _jspx_dependants;
} public void _jspInit() {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
_jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
} public void _jspDestroy() {
} public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException { PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
try {
response.setContentType("text/html;charset=UTF-8");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out; out.write("\r\n");
out.write("\r\n");
out.write("\r\n");String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
basePath = basePath +"";
out.write("\r\n");
out.write("<html>\r\n");
out.write("\t<head>\r\n");
out.write("\t\t<meta http-equiv=\"pragma\" content=\"no-cache\">\r\n");
out.write("\t\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\r\n");
out.write("\t\t<title>欢迎访问");找一个jsp编译的java代码看一下,调用jsp页面后调用的是
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
这个方法,这个方法的方法体就是你卸载jsp页面内部的代码。
所以dopost doget 的方法体直接写在jsp页面里就可以了
<% %>你直接在这个java代码块里面写业务逻辑代码不需要写什么类啊方法什么的。
直接把你的操作写在jsp中就可以了,不需要再去写一个servlet
比如你原本定义servlet会这样
web.xml<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>package.BaseServlet</servlet-class>
</servlet>
java 类public class testServlet extends BaseServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这里会进行你的删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}以上是servlet的处理方式,现在你改用jsp来完成,首先可以省去web.xml的配置
假设有jsp文件test.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.esoon.cisiss.common.BaseServlet" %>
<%@ page import="java.io.IOException" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<script type="text/javascript">
alert("");
</script>
<%
//这里删除做删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
%>
直接把你的操作写在jsp中就可以了,不需要再去写一个servlet
比如你原本定义servlet会这样
web.xml<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>package.BaseServlet</servlet-class>
</servlet>
java 类public class testServlet extends BaseServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这里会进行你的删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}以上是servlet的处理方式,现在你改用jsp来完成,首先可以省去web.xml的配置
假设有jsp文件test.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.esoon.cisiss.common.BaseServlet" %>
<%@ page import="java.io.IOException" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<script type="text/javascript">
alert("");
</script>
<%
//这里删除做删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
%>
我说了 我不能动java代码 二次开发 项目只有war包
不需要写doPost和doGet方法? 那我ajax 怎么调用这个类 怎么返回值
直接把你的操作写在jsp中就可以了,不需要再去写一个servlet
比如你原本定义servlet会这样
web.xml<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>package.BaseServlet</servlet-class>
</servlet>
java 类public class testServlet extends BaseServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这里会进行你的删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}以上是servlet的处理方式,现在你改用jsp来完成,首先可以省去web.xml的配置
假设有jsp文件test.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.esoon.cisiss.common.BaseServlet" %>
<%@ page import="java.io.IOException" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<script type="text/javascript">
alert("");
</script>
<%
//这里删除做删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
%>
我说了 我不能动java代码 二次开发 项目只有war包 所以你要仔细看,那个java类是说如果你可以写java类会这样写,但是你不能,就写一个jsp好了
以上是servlet的处理方式,现在你改用jsp来完成,首先可以省去web.xml的配置
假设有jsp文件test.jsp 只需要写这个jsp就行了,ajax 请求这个jsp的路径就行了
直接把你的操作写在jsp中就可以了,不需要再去写一个servlet
比如你原本定义servlet会这样
web.xml<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>package.BaseServlet</servlet-class>
</servlet>
java 类public class testServlet extends BaseServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这里会进行你的删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}以上是servlet的处理方式,现在你改用jsp来完成,首先可以省去web.xml的配置
假设有jsp文件test.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.esoon.cisiss.common.BaseServlet" %>
<%@ page import="java.io.IOException" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<script type="text/javascript">
alert("");
</script>
<%
//这里删除做删除操作
System.out.print("--------1-------");
System.out.print("--------2---------");
%>
我说了 我不能动java代码 二次开发 项目只有war包 所以你要仔细看,那个java类是说如果你可以写java类会这样写,但是你不能,就写一个jsp好了
以上是servlet的处理方式,现在你改用jsp来完成,首先可以省去web.xml的配置
假设有jsp文件test.jsp 只需要写这个jsp就行了,ajax 请求这个jsp的路径就行了
那返回值怎么写 jsp页面的java内容 怎么办返回的ID返回回来?
<script type="text/javascript">
alert("");
</script>
JSP全称是Java Server Pages,它是servle技术的特殊情况,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP这门技术的最大的特点在于,写jsp就像在写html,但:
• 它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
• 相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。
• Jsp快速入门:在jsp页面中输出当前时间。
jsp里嵌入servlet可以做,你只需去参考下HttpServlet的源码,下个tomcat源码,里面可以找到。但是!!!!jsp里写Java会让人有种想屎的感觉啊!!!!你就算拼着呕吐写完了!!你以后也不远愿意再去看它一眼啊!!!有木有!!!全是<%%>!!真的想屎啊!!!!所以 别想了啊!!!!!楼主!!!!
url : "/broker/aaa.jsp",
type:'post',
context : this,
data : {"ddd" : "111"},
error : function(jqXHR, textStatus, errorThrown) {
alert();
},
success : function(data, textStatus, jqXHR) {
alert(data);
}
});JSP中:<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String ddd = request.getParameter("ddd");
out.print(ddd+"====");
%>