魔扣论坛

魔扣源码论坛业务
查看: 844|回复: 6

JSP中可能会碰到的问题解答

[复制链接]
  • TA的每日心情
    慵懒
    2018-10-11 00:05
  • 签到天数: 5 天

    [LV.2]随便看看

    143

    主题

    3

    回帖

    164

    积分

    初级魔扣

    Rank: 2

    魔扣币
    16
    贡献
    7
    威望
    11
    发表于 2016-12-28 15:25:48 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    1、如何混合使用JSP和SSI #include?
    在JSP中可以使用如下方式包含纯HTML:
    &lt !--#include file="data.inc"-- &gt
    但是如果data.inc中包含JSP CODE ,我们可以使用:
    &lt file="data.inc"% &gt
    2、如何执行一个线程安全的JSP?
    只需增加如下指令
    &lt %@ page isThreadSafe="false" % &gt
    3、JSP如何处理HTML FORM中的数据?
    通过内置的request对象即可,如下:
    &lt %
    String item = request.getParameter("item");
    int howMany = new Integer(request.getParameter("units")).intValue();
    % &gt
    4、在JSP如何包含一个静态文件?
    静态包含如下:&lt %@ include file="copyright.html" % &gt
    动态包含如下:&lt JSP:include page="copyright.html" flush="true"/ &gt
    5、在JSP中如何使用注释?
    主要有四中方法:
    1。&lt %-- 与 --% &gt
    2。//
    3。/**与**/
    4。&lt !--与-- &gt
    6、在JSP中如何执行浏览重定向?
    使用如下方式即可:response.sendRedirect
    也能物理地改变HTTP HEADER属性,如下:
    &lt %
    response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
    String newLocn="/newpath/index.html";
    response.setHeader("Location",newLocn);
    % &gt
    7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中?
    把如下脚本加入到JSP文件的开始即可:
    &lt %
    response.setHeader("Cache-Control","no-store"); //HTTP 1.1
    response.setHeader("Pragma","no-cache"); //HTTP 1.0
    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
    % &gt
    8、在JSP中如何设置COOKIE?
    COOKIE是作为HTTP HEADER的一部分被发送的,如下方法即可设置:
    &lt %
    Cookie mycookie = new Cookie("aName","aValue");
    response.addCookie(mycookie);
    % &gt
    9、在JSP中如何删除一个COOKIE?
    &lt %
    Cookie killMyCookie = new Cookie("mycookie", null);
    killMyCookie.setMaxAge(0);
    killMyCookie.setPath("/");
    response.addCookie(killMyCookie);
    % &gt
    10、在一个JSP的请求处理中如何停止JSP的执行
    如下例:
    &lt %
    if (request.getParameter("wen") != null) {
    // do something
    } else {
    return;
    }
    % &gt
    11、在JSP中如何定义方法
    你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下:
    &lt %!
    public String howBadFrom(HttpServletRequest req) {
    HttpSession ses = req.getSession();
    ...
    return req.getRemoteHost();
    }
    % &gt
    &lt %
    out.print("in general,lao lee is not baddie ");
    % &gt
    &lt %= howBadFrom(request) % &gt
    12、如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪
    使用URL重写即可,如下:
    hello1.JSP
    &lt %@ page session="true" % &gt
    &lt %
    Integer num = new Integer(100);
    session.putValue("num",num);
    String url =response.encodeURL("hello2.JSP");
    % &gt
    &lt a href=&lt %=url% &gt &gthello2.JSP&lt /a &gt
    hello2.JSP
    &lt %@ page session="true" % &gt
    &lt %
    Integer i= (Integer )session.getValue("num");
    out.println("Num value in session is "+i.intValue());
    % &gt
    13、在JSP中能发送EMAIL吗
    可以使用SUN的专用包:sun.net.smtp包。如下脚本使用SmtpClient类发送EMAIL。
    &lt %@ page import="sun.net.smtp.SmtpClient, java.io.*" % &gt
    &lt %
    String from="
    String to="
    try{
    SmtpClient client = new SmtpClient("mail.xxxxx.xxx");
    client.from(from);
    client.to(to);
    PrintStream message = client.startMessage();
    message.println("To: " + to);
    message.println("Subject: Sending email from JSP!");
    message.println("This was sent from a JSP page!");
    message.println();
    message.println("Cool! :-)");
    message.println();
    message.println("Good Boy");
    message.println("Im in genius.com");
    message.println();
    client.closeServer();
    }
    catch (IOException e){
    System.out.println("ERROR SENDING EMAIL:"+e);
    }
    % &gt
    14、在SERVLET中我能调用一个JSP错误页吗
    当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。
    protected void sendErrorRedirect(HttpServletRequest request,
    HttpServletResponse response, String errorPageURL,
    Throwable e)
    throws ServletException, IOException {
    request.setAttribute ("javax.servlet.JSP.JSPException", e);
    getServletConfig().getServletContext().
    getRequestDispatcher(errorPageURL).forward(request,
    response);
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) {
    try {
    // do something
    } catch (Exception ex) {
    try {
    sendErrorRedirect(request,response,"/JSP/MyErrorPage.JSP",ex);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    15、JSP和APPLET如何通讯
    JSP如何与EJB SessionBean通讯
    下面的代码段作了很好的示范
    &lt %@ page import="javax.naming.*, javax.rmi.PortableRemoteObject,
    foo.AccountHome, foo.Account" % &gt
    &lt %!
    //定义一个对SessionBeanHome接口实例的全局引用
    AccountHome accHome=null;
    public void JSPInit() {
    //获得Home接口实例
    InitialContext cntxt = new InitialContext( );
    Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB");
    accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);
    }
    % &gt
    &lt %
    //实例化SessionBean
    Account acct = accHome.create();
    //调用远程方法
    acct.doWhatever(...);
    // 如此等等
    % &gt
    16、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中?
    可以定义一个简单的函数来达到目的,如下:
    &lt %!
    String blanknull(String s) {
    return (s == null) ? "" : s;
    }
    % &gt
    然后在JSP的FORM中,可以这样使用
    &lt input type="text" name="shoesize" value="&lt %=blanknull(shoesize)% &gt" &gt
    17、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)?
    现提供两个解决方案:
    A:使用HTTP,
    B:在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如:
    response.setContentType("application/x-msword");
    然后想输出缓冲中写一些东东即可。
    18、使用useBean标志初始化BEAN时如何接受初始化参数
    使用如下两标签即可:
    &lt JSP:getProperty name="wenBean" property="someProperty"/ &gt
    &lt JSP:setProperty name="wenBean" property="someProperty" value="someValue"/ &gt
    19、使用JSP如何获得客户浏览器的信息?
    使用request.getHeader(String)即可
    20、能象调用子程序一样调用JSP吗?
    当然可以,用&lt JSP:include page="relativeURL" flush="true"/ &gt
    21、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS?
    &lt file="abc.JSP"% &gt与&lt JSP:include page="abc.JSP"/ &gt之间的差别?
    前一个为静态包含,而后一个为动态包含
    22、JSP的缺点?
    1。对JAVA程序进行调试没有好东东
    2。因大多数的servlet引擎不支持connection pooling
    3。Servlet引擎没有标准
    4。JSP与其它脚本语言的交互
    23、JSP能进行递归调用吗?
    当然可以,如对form的提交给本页
    34、如何实现JSP的国际化?
    为各种版本提供resource bundles属性文件即可
    25、在JSP中如何写文本文件?
    使用PrintWriter对象,如:
    &lt %@ page import="java.io.*" % &gt
    &lt %
    String str = "print me";
    String nameOfTextFile = "/usr/anil/imp.txt";
    try {
    PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile));
    pw.println(str);
    pw.close();
    } catch(IOException e) {
    out.println(e.getMessage());
    }
    % &gt
    26、如何在JSP中包括绝对路径文件?
    使用URLConnection即可。
    27、在servlets和JSP之间能共享session对象吗?
    当然可以,
    HttpSession session = request.getSession(true);
    session.putValue("variable","value");
    28、JavaScript的变量能复制到JSP的SESSION中吗?
    29、如何设置cookie在某一时间后过期?
    用Cookie.setMaxAge(int)
    30、如何获得当前的sessions数?
    可以使用HttpSessionBindingListeners来跟踪
    31、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗?
    当然可以,可以为你的JSP文件定义一个别名:/JSP/=ybwen.genius.myPreprocessingServlet,而以/JSP/为前缀的文件可以使用
    32、对一个JSP页,如果多个客户端同时请求它,同步可能吗?
    在JSP:useBean语法中使用beanName有何好处?
    beanName使用Beans.instantiate()初始化Bean
    33、当我使用&lt JSP:forward &gt时,在浏览器的地址栏没有改变?
    使用response.sendRedirect("newURL")
    34、如何转换JSP 0.9版本的文件到JSP1.1?
    可使用sed/awk即可
    35、使用JSP能设置HTML FORM中输入域的焦点,不用JavaScript?
    没办法
    36、使用JSP连接到数据库连接缓冲池的最好方法是什么?
    1。使用JDBC2。0中带有此服务的Driver
    2.使用提供有此服务的Application server

    该用户从未签到

    3

    主题

    242

    回帖

    487

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    242
    贡献
    242
    威望
    0
    发表于 2017-1-24 17:44:00 | 显示全部楼层
    打酱油的人拉,回复下赚取积分

    该用户从未签到

    4

    主题

    238

    回帖

    480

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    238
    贡献
    238
    威望
    0
    发表于 2017-4-30 17:22:35 来自手机 | 显示全部楼层
    给自己的三句话:一、年轻,什么都还来得及;二、不要纠缠于小事;三、你现在遇到的事都是小事。',

    该用户从未签到

    3

    主题

    241

    回帖

    485

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    241
    贡献
    241
    威望
    0
    发表于 2017-9-12 12:45:41 | 显示全部楼层
    楼主呀,,,您太有才了。。。

    该用户从未签到

    1

    主题

    230

    回帖

    461

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    230
    贡献
    230
    威望
    0
    发表于 2018-2-11 14:03:50 来自手机 | 显示全部楼层
    顶起顶起顶起

    该用户从未签到

    1

    主题

    275

    回帖

    551

    积分

    高级魔扣

    Rank: 4

    魔扣币
    275
    贡献
    275
    威望
    0
    发表于 2018-8-31 18:01:22 来自手机 | 显示全部楼层
    打开每天挂念的空间,想念每个与网络相遇的朋友,认真翻阅着每条留言,此时只有温馨与感动驻满心田。当我看到你的留言时感觉真好无论你身在何方,魔扣源码论坛,让快乐飞进你的小屋,让好运降落在你身边,让幸福常常与你相伴,让如意流淌你的心房,让岁月的诗句写满真诚与难忘,让我的留言为你带来快乐和吉祥!

    该用户从未签到

    1

    主题

    249

    回帖

    499

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2019-2-17 23:03:07 | 显示全部楼层
    缘份存在心里是浪漫的梦境,思念藏在心底是芬芳的记忆,魔扣源码论坛上的友情放在心上是甜蜜的旋律,朋友记在心头是温馨的美丽。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表