【知识点详解】
1. JSP UserBean标签:在JSP中,`<jsp:userBean>`标签用于实例化JavaBean,并将其绑定到一个指定的作用域。在这个例子中,我们需要将URL参数`loginName`和`password`设置到User对象中。选项a和b中的`<jsp:setProperty>`标签为每个属性分别设置了值,而实际上我们可以使用`property="*"`来自动映射所有公共setter方法,因此选项c和d是正确的。但是,由于题目要求选择两项,所以正确答案是cd。`scope`属性定义了JavaBean的作用域,`page`表示该对象只在当前页面内有效,`application`则在整个应用中有效。根据题意,可能只需要在当前页面中使用,所以`page`可能是更合适的选择。
2. 自定义JSP标签:自定义标签的相关信息通常通过`<taglib>`标签进行描述。在JSP中,正确的方式是创建一个TLD(Tag Library Descriptor)文件,其中包含`<taglib>`标签。在该标签内部,`<tag>`子标签用于定义具体的标签,`name`属性标识标签的名字,`tagclass`属性指明实现该标签的类。因此,选项a是正确的描述。
3. JSP中使用JavaBean:`<jsp:useBean>`标签用于在JSP页面中创建或者引用JavaBean。一旦创建了JavaBean,可以通过`<jsp:getProperty>`标签来获取其属性值,或者使用EL表达式(例如`<%=user.getLoginName()%>`)来直接调用getter方法。选项ac是正确的。`<jsp:getProperty>`的`name`属性应匹配`<jsp:useBean>`的`id`属性,而不是`id`属性的值,所以选项b是错误的。选项d试图调用`getProperty()`方法,但这个方法并不在标准的JavaBean接口中,因此也是错误的。
4. HttpServlet相关知识:`HttpServlet`是Servlet API中的一个类,它是处理HTTP请求的基础。`HttpServlet`扩展了`GenericServlet`,提供了处理HTTP请求的方法,如`doGet`、`doPost`等。选项a和b描述是正确的。选项c错误是因为`HttpServlet`不是抽象类,它提供了一些默认实现,可以直接继承并覆盖相应方法来实现HTTP请求的处理。
总结:
- JSP UserBean标签的使用包括`<jsp:userBean>`和`<jsp:setProperty>`,可以设置`property="*"`来自动映射所有属性。
- 自定义JSP标签通过`<taglib>`标签和TLD文件进行描述,`<tag>`子标签内的`tagclass`定义标签的实现类。
- 使用`<jsp:useBean>`和`<jsp:getProperty>`与EL表达式可以操作JavaBean的属性。
- `HttpServlet`是处理HTTP请求的基类,不是抽象类,继承它可以方便地处理HTTP请求方法。