There doesn't exist a way to do this in the options of the obj importer so what you could do is run a script that loops over the items in your scene,
check if it is a mesh and export the current selection to its own file relative to the path your blend file is saved.

**Blender 3.1+**

As of Blender 3.1.0 the name of the operator has been changed to [`obj_export()`][1] and is now part of the [`WindowManager`][2] namespace [`bpy.ops.wm.obj_export(filepath="//")`][1]:

    import bpy
    import os
    
    # Get the path where the blend file is located
    basedir = bpy.path.abspath('//')
    
    # Deselect all objects
    bpy.ops.object.select_all(action='DESELECT')    
    
    # loop through all the objects in the scene
    scene = bpy.context.scene
    for ob in scene.objects:
        # Select each object
        ob.select_set(True)
    
        # Make sure that we only export meshes
        if ob.type == 'MESH':
            # Export the currently selected object to its own file based on its name
            bpy.ops.wm.obj_export(
                filepath=os.path.join(basedir, ob.name + '.obj'),
                export_selected_objects=True,
                )
        # Deselect the object and move on to another if any more are left
        ob.select_set(False)

**Blender 2.8+**

As of [Blender 2.8.0][3] the selection attribute ([`Object.select`][4]) has been removed in favor of get/set functions [`Object.select_set(State)`][5] and [`Object.select_get()`][6] to set and get the current selection state of each object:

    import bpy
    import os
    
    # Get the path where the blend file is located
    basedir = bpy.path.abspath('//')
    
    # Deselect all objects
    bpy.ops.object.select_all(action='DESELECT')    
    
    # loop through all the objects in the scene
    scene = bpy.context.scene
    for ob in scene.objects:
        # Select each object
        ob.select_set(True)
    
        # Make sure that we only export meshes
        if ob.type == 'MESH':
            # Export the currently selected object to its own file based on its name
            bpy.ops.export_scene.obj(
                    filepath=os.path.join(basedir, ob.name + '.obj'),
                    use_selection=True,
                    )
        # Deselect the object and move on to another if any more are left
        ob.select_set(False)

**Blender 2.7x**

    import bpy
    import os
    
    # Get the path where the blend file is located
    basedir = bpy.path.abspath('//')

    # Deselect all objects
    bpy.ops.object.select_all(action='DESELECT')    

    # Loop through all the objects in the scene
    scene = bpy.context.scene
    for ob in scene.objects:
        # Make the current object active and select it
        scene.objects.active = ob
        ob.select = True
        
        # Make sure that we only export meshes
        if ob.type == 'MESH':
            # Export the currently selected object to its own file based on its name
            bpy.ops.export_scene.obj(
                    filepath=os.path.join(basedir, ob.name + '.obj'),
                    use_selection=True,
                    )
        # Deselect the object and move on to another if any more are left
        ob.select = False

To further tweak your export options, see the parameters that
[`bpy.ops.export_scene_obj()`](https://docs.blender.org/api/current/bpy.ops.export_scene.html#bpy.ops.export_scene.obj) accepts.
For example, you can include normals with `use_normals=True`, change forward axis with `axis_forward` etc.

There are more stringent checks that could be made but for simple use cases and if used properly, this should suffice.

Also see https://blender.stackexchange.com/questions/5064/batch-import-wavefront-obj/5065#5065.

----

To have it export only selected objects, comment line `7` and change line `11`.

    # Remove
    bpy.ops.object.select_all(action='DESELECT')
    # Change to this where instead of the entire scene, we only look through selected objects
    for ob in bpy.context.selected_objects:

or keep line `11` and add another line

    for ob in scene.objects:
        # Add the check to see if in selected objects here
        if ob in bpy.context.selected_objects:
            # adjust indentation
            ...
            ...

***NB:*** Make sure the layers you have objects on are selected otherwise you will just get an empty file.


  [1]: https://docs.blender.org/api/dev/bpy.ops.wm.html?highlight=obj_export#bpy.ops.wm.obj_export
  [2]: https://docs.blender.org/api/current/bpy.types.WindowManager.html?highlight=windowmanager#bpy.types.WindowManager
  [3]: https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Scene_and_Object_API#Object_Selection_and_Hiding
  [4]: https://docs.blender.org/api/blender_python_api_current/bpy.types.Object.html?highlight=select#bpy.types.Object.select
  [5]: https://docs.blender.org/api/current/bpy.types.Object.html?highlight=select_set#bpy.types.Object.select_set
  [6]: https://docs.blender.org/api/current/bpy.types.Object.html#bpy.types.Object.select_get