问:你好,
我在运行下一个代码时遇到问题。我有一个glassfish服务器,并添加了servlet API。问题是,当我尝试运行该错误时,会发生此错误:在/ Users / jakublemiszewski / NetBeansProjects / JspServletTutorial / build / web GlassFish Server进行就地部署,部署,空,false / Users / jakublemiszewski / NetBeansProjects / JspServletTutorial / nbproject / build -impl.xml:1077:该模块尚未部署。有关详细信息,请参见服务器日志。
另一个错误:/Users/jakublemiszewski/NetBeansProjects/JspServletTutorial/src/java/Servlet/SimpleServlet.java:47:错误:接口HttpSession中的方法getAttribute无法应用于给定类型;session.getAttribute(“ savedUserName”,userName); 必需:找到的字符串:String,String原因:实际和正式参数列表的长度不同1错误/Users/jakublemiszewski/NetBeansProjects/JspServletTutorial/nbproject/build-impl.xml:899:执行此行时发生以下错误:/ Users /jakublemiszewski/NetBeansProjects/JspServletTutorial/nbproject/build-impl.xml:321:编译失败;有关详细信息,请参见编译器错误输出。生成失败(总时间:0秒)
我是新手,所以我不明白问题是什么希望获得帮助。谢谢:)代码:
/ *
*要更改此许可证标题,请在“项目属性”中选择“许可证标题”。
*要更改此模板文件,请选择工具| 范本
*并在编辑器中打开模板。
* /
包Servlet ;
导入java 。io 。IOException ;
导入java 。io 。PrintWriter ;
导入javax 。servlet 。ServletContext ;
导入javax 。servlet 。ServletException ;
导入javax 。servlet 。http 。HttpServlet ;
导入javax 。servlet 。http 。HttpServletRequest ;
导入javax 。servlet 。http 。HttpServletResponse ;
导入javax 。servlet 。http 。HttpSession ;
/ **
*
* @作者Jakub Lemiszewski
* /
公共 类SimpleServlet扩展了HttpServlet {
/ **
*处理对HTTP <code> GET </ code>和<code> POST </ code>的请求
* 方法。
*
* @param请求servlet请求
* @param响应servlet响应
* @抛出ServletException,如果发生特定于servlet的错误
* @引发IOException -如果发生I / O错误
* /
受保护的 void processRequest (HttpServletRequest 请求, HttpServletResponse 响应)
抛出ServletException , IOException {
反应。setContentType (“ text / html; charset = UTF-8” );
尝试 (PrintWriter的 出=响应。的getWriter ()) {
字符串 userName = request 。getParameter (“ name” );
HttpSession session = request 。getSession ();
ServletContext context =请求。getServletContext ();
if ( userName != “” && userName != null )
{
会议。getAttribute (“ savedUserName” , userName );
情境。setAttribute (“ savedUserName” , userName );
}
/ * TODO在这里输出您的页面。您可以使用以下示例代码。* /
出来。println (“ <!DOCTYPE html>” );
出来。println (“ <html>” );
出来。println (“ <head>” );
出来。println (“ <title> Servlet SimpleServlet </ title>” );
出来。println (“ </ head>” );
出来。println (“ <body>” );
出来。的println (“<H1>的Servlet SimpleServlet在” +请求。getContextPath () + “</ H1>” );
出来。println (“ <h2>请求的参数” + ( String ) userName + “ </ h2>” );
出来。的println (“<H3>会话用户名” + (字符串)会话。的getAttribute (“savedUserName” ) + “</ H1>” );
出来。的println (“<H4>上下文用户名” + (字符串)上下文。的getAttribute (“savedUserName” ) + “</ H4>” );
出来。println (“ <h5> Defult Usert Config” + getServletConfig ()。getInitParameter (“ defaultUser” ) + “ </ h5>” );
// defaultUser来自web.xml-> servlet->添加参数
出来。println (“ </ body>” );
出来。println (“ </ html>” );
}
}
// <editor-fold defaultstate =“ collapsed” desc =“ HttpServlet方法。单击左侧的+号以编辑代码。
/ **
*处理HTTP <code> GET </ code>方法。
*
* @param请求servlet请求
* @param响应servlet响应
* @抛出ServletException,如果发生特定于servlet的错误
* @引发IOException -如果发生I / O错误
* /
@Override
受保护的 void doGet (HttpServletRequest 请求, HttpServletResponse 响应)
抛出ServletException , IOException {
processRequest ( request , response );
}
/ **
*处理HTTP <code> POST </ code>方法。
*
* @param请求servlet请求
* @param响应servlet响应
* @抛出ServletException,如果发生特定于servlet的错误
* @引发IOException -如果发生I / O错误
* /
@Override
受保护的 void doPost (HttpServletRequest 请求, HttpServletResponse 响应)
抛出ServletException , IOException {
processRequest ( request , response );
}
/ **
*返回servlet的简短描述。
*
* @返回包含servlet描述的字符串
* /
@Override
公共 字符串getServletInfo (){
返回 “简短描述” ;
} // </ editor-fold>
}
答:在以下代码中遇到错误:
if(userName!=“” && userName!= null)
{
session.getAttribute(“ savedUserName”,userName);
context.setAttribute(“ savedUserName”,userName);
}
更新上面的代码如下:
if(userName!=“” && userName!= null)
{
session.setAttribute(“ savedUserName”,userName);
context.setAttribute(“ savedUserName”,userName);
}