读书人

jsp能写servlet种 吗 jsp页面当servle

发布时间: 2013-09-21 22:51:35 作者: rapoo

jsp能写servlet类 吗 jsp页面当servlet类?
我做一个二次开发,我在想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);
}

}

%>
[解决办法]
一个jsp写doPost干吗,想做什么直接做,想接值直接写request.getParameter
[解决办法]
其实可以在jsp中使用
<%!
public void method(){


}
%>
来定义全局方法提供调用就好了,,

另外 我尝试了使用楼主的方法,但是好像不行,每次都是执行jsp的_jspService ,,设置了url-pattern 亦如此。
我看编译文件终于发现了:
jsp能写servlet种 吗 jsp页面当servlet类
这个servlet是定义在方法内的,直接调用肯定行不通。。

具体我也不会。。


[解决办法]
同意5楼啊~具体什么原因我也没试过,感觉配置文件这么写可能有问题吧~
感觉没什么实用价值啊~在jsp里添加java代码本来就很乱,再写servlet恐怕连执行效率都会降低啊~
[解决办法]
jsp最终会编译成一个servlet类,jsp偏向于表示层,servlet注重逻辑,这个你或许试试这个jsp编译成servlet的名字叫啥,在调用。 你这种具体我也没试过! 求楼下大神解释吧!
[解决办法]



public final class login_jsp extends org.apache.jasper.runtime.HttpJspBase
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页面里就可以了
[解决办法]
这位小哥,你得先了解servlet和jsp是什么关系哦,简单说js在其实就是servlet,在servlet容器中,比如tomcat,jsp会先解析成.java文件,你在tomcat下的work目录下回找到其名称+“_jsp”.java文件和.calss文件,看.java文件的代码就可以看出你不需要写doPost和doGet方法了,想写java代码就直接写就是了,同时先了解jsp的相关知识啊,比如九大内建对象
[解决办法]
好像 从来没看到过.......... 你Ajax 不能请求一个jsp 页面 里面 写 java 代码? 在jsp中 写 类。。。 思路 问题吧 !!!
[解决办法]
out.print(你要返回的内容)

把下面的内容去掉
<script type="text/javascript">
alert("");
</script>
[解决办法]
引用:

我做一个二次开发,我在想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);
}

}

%>
大哥啊jsp就是servlet好吗,你可以在jsp里写任何代码啊,也可以用javaBean啊,jsp里的代码最终都是在servlet的service方法里的怎么可能方法里面嵌套类定义
[解决办法]
LZ新手,连JSP和Servlet的区别和联系还没搞清楚。建议先搜索下JSP和Servlet的区别。或许你的问题就解决了。
[解决办法]
大家还是先让他搞清楚原理吧,不然只能算是帮他解决了当前的问题,还是不了解为什么要这么做。
[解决办法]
jsp就是servlet啊
?JSP全称是Java Server Pages,它是servle技术的特殊情况,都是SUN公司定义的一种用于开发动态web资源的技术。
?JSP这门技术的最大的特点在于,写jsp就像在写html,但:
?它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
?相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。
?Jsp快速入门:在jsp页面中输出当前时间。

[解决办法]
请不要这样做,jsp里写java代码,可以写。
jsp里嵌入servlet可以做,你只需去参考下HttpServlet的源码,下个tomcat源码,里面可以找到。

但是!!!!jsp里写Java会让人有种想屎的感觉啊!!!!你就算拼着呕吐写完了!!你以后也不远愿意再去看它一眼啊!!!有木有!!!全是<%%>!!真的想屎啊!!!!所以 别想了啊!!!!!楼主!!!!

jsp能写servlet种 吗 jsp页面当servlet类jsp能写servlet种 吗 jsp页面当servlet类
[解决办法]
不知道我理解的对不,LZ只是想写一个ajax请求,但是不能写JAVA类,只能修改jsp。


$.ajax({
url : "/brokermark/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+"====");
%>

读书人网 >J2EE开发

热点推荐